2016-02-26 126 views
1

我目前正在使用Wpf应用程序。 我有一个名为SearchFilters.I的用户控件,我想将usercontrol的集合绑定到mainWindow的stackpanel的子项,这意味着要将所有的usercontrols作为stackpanel的子项。我如何实现这一点? 请帮忙!将USercontrol的集合绑定到Stackpanel

+0

如果你有相同的用户控件类的多个实例,使用ItemsControl并将UserControl放在其“ItemTemplate”中。在这个DataTemplate中,将UserControl的属性绑定到视图模型项目类的属性。 – Clemens

+0

其实我是WPF的新手,你能给我一个例子吗?谢谢。@ Clemens –

+0

我只有一个UserControl,我想创建一个usercontrol实例的列表,并且想把这个列表绑定到stackpanel的子节点上。 –

回答

1

试试这个,在主窗口

<ItemsControl ItemsSource="{Binding YourBindableCollection}" > 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <local:YourUserControl /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

YourUserControl必须在同一文件夹作为主窗口,如果你想保留当地作为命名空间

+1

为什么一个ListView?在问题中没有提到项目应该是可选择的,或者可能显示为列。您应该通过ItemsControl替换ListView。也绝对不需要“YourUserControl必须与MainWindow位于同一文件夹中”。它仅取决于如何声明XML名称空间“local”。用户控件也可以放在不同的程序集中。 – Clemens

+0

@Clemens我同意,ListView可以被ItemsControl替换。在评论中,用户说他是WPF的新手,所以我在最后指定了注释,因为我使用了本地名称空间。 –