У меня есть ObservableCollection, который имеет список объектов.Привязка UserControl к элементу ListBox ItemSource
Я хотел бы привязать эту наблюдаемую коллекцию к ListBox, но не так, чтобы каждый объект отображался внутри ListView, но вместо этого каждый объект создает UserControl, который имеет сам объект в качестве входного параметра.
Для получения аналогичного примера; представьте себе серверный браузер, в котором каждая строка является UserControl, и данные хранятся в списке/ObservableCollection, а затем отображаются внутри интерфейса ListBox.
У меня есть этот код XAML в моем MainWindow.xaml
<ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding Bills}" ItemContainerStyle="{StaticResource BillStyle}">
</ListBox>
И это стиль, который вызывает UserControl
<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)
{ ... }
Но я не знаю, как сделать это.
Как это создаст UserControl для каждого объекта внутри ItemSource? – DethoRhyne
Я изменил свой вопрос, можете ли вы его просмотреть? – DethoRhyne
Я не уверен, что понимаю, почему вам нужен пользовательский контроль для каждого элемента. Правильно ли я предположить, что вы хотите, чтобы список для каждого элемента в вашей коллекции отображал его? Если это так, вам лучше использовать список для отображения всех ваших элементов, а затем второй список, который отображает подэлементы выбранного элемента в первом списке. – LiamHarries