我有一个ObservableCollection对象列表。将用户控件绑定到列表框项目源
我想将此可观察集合绑定到ListBox,但不是以每个对象都显示在ListView内的方式,而是每个对象都创建一个UserControl,该对象本身作为输入参数。
给出一个类似的例子;设想一个服务器浏览器,其中每行是UserControl,数据存储在List/ObservableCollection中,然后显示在前端ListBox中。
我有这样的XAML代码我MainWindow.xaml
<ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding Bills}" ItemContainerStyle="{StaticResource BillStyle}">
</ListBox>
这是调用用户控件
<Style TargetType="{x:Type ListBoxItem}" x:Key="BillStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<ns:BillItem />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
和我有MainWindow.xaml.cs风格:
ObservableCollection<Bill> Bills {get;set;}
而在构造函数中,我只是添加了几个对象。
我想该法案对象被推到了用户控制以这种方式:
UserControl BillItem (Bill BindedObject)
{ ... }
但我不知道该怎么做。
如何为ItemSource中的每个对象创建一个UserControl? – DethoRhyne
我改变了我的问题,你可以检查一下吗? – DethoRhyne
我不确定我明白你为什么要为每个项目设置一个用户控件。我是否会正确地假设你想为你的集合中的每个项目添加一个列表框来显示它的项目?如果是这样,你会更好地使用列表框来显示所有的项目,然后第二个列表框,在第一个列表框中显示所选项目的子项目。 – LiamHarries