C# 如何在Windows8的xaml中定义页面中的usercontrol,并在同一页面中重用它?

C# 如何在Windows8的xaml中定义页面中的usercontrol,并在同一页面中重用它?,c#,xaml,windows-8,C#,Xaml,Windows 8,我想使用usercontrol(一组TextBlock和Combobox)。我想在同一页上有3个实例。那么如何在同一页面的xaml中定义这样的usercontrol呢?需要使用页面资源吗?或其他任何内容?在Visual Studio中,您可以通过转到“项目-->添加新项”并选择“用户控件”来定义用户控件。在那里定义它之后,您可以在要使用它的页面的XAML中添加对它的引用。您可以通过在页面的根标记中添加一个类似于以下内容的东西来实现这一点 <common:LayoutAwarePage

我想使用usercontrol(一组TextBlock和Combobox)。我想在同一页上有3个实例。那么如何在同一页面的xaml中定义这样的usercontrol呢?需要使用页面资源吗?或其他任何内容?

在Visual Studio中,您可以通过转到“项目-->添加新项”并选择“用户控件”来定义用户控件。在那里定义它之后,您可以在要使用它的页面的XAML中添加对它的引用。您可以通过在页面的根标记中添加一个类似于以下内容的东西来实现这一点

<common:LayoutAwarePage
    ...
    xmlns:CustomControlName="using:CustomControlNamespace"
    ...>

如果必须在同一个XAML文档中执行此操作,我想您可以在pages资源中定义控件

<Page.Resources>

    <UserControl x:Name="CustomControl">
       ...
    </UserControl>

</Page.Resources>

...

就我个人而言,我会在一个单独的文件中定义一个UserControl。它将事情区分开来,Visual Studio还为您提供了一些基础工作。

是的,但现在还有一个问题是,我需要处理3个不同的事件以更改选择。那么如何确定哪个组合生成了事件?另外,绑定需要有不同的路径,比如对于combo1,对于combo2,path=“searchOption”,path=“sortOption”。如何实现这一点?定义自定义控件后,可以创建它的多个实例(与在页面上实例化多个按钮控件的方式相同)。然后,您可以为其中的每一个指定不同的名称。为了达到您描述的效果,我相信您需要在usercontrol中公开combobox的依赖属性。我在这方面没有太多经验,所以您可能需要四处搜索以获得帮助,请尝试搜索“用户控件组合框的依赖属性”或类似内容。这就是我的控件的外观。由于combobox是一个子组件,如何为“stackpanel”的不同实例设置不同的绑定路径和不同的组合处理程序?正如我所说的,查看依赖属性,它们将允许您这样做。您将要做的是公开usercontrol组合框的selected item/selected index属性。然后,当您有一个实例时,您将能够单独访问每个usercontrols组合框项。请看这两页,了解一般指南:和