У меня есть два списка WPF. Один из них представляет собой список списков (на самом деле это список ObservableCollection), а другой - список всех известных экземпляров «Thingy».
Вот таблица данных, которую я использую для класса "штуковин".
<DataTemplate DataType="{x:Type Model:Thingy}">
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="ThingyInListCheckBox" Click="ThingyInList_Click"></CheckBox>
<TextBlock Text="{Binding Path=ThingyName}"></TextBlock>
</StackPanel>
Вот XAML для списков:
<ListBox
Name="ListOfGroups"
SelectionMode="Single">
</ListBox>
<ListBox
Name="ListOfThingys"
SelectionMode="Single">
</ListBox>
У меня есть привязка данных для списков в коде, потому что я слишком устал, чтобы понять, как это сделать в XAML:
ListOfGroups.ItemsSource = InMemoryCache.ThingyGroups;
ListOfThingys.ItemsSource = InMemoryCache.Thingys;
Мне нужен флажок «ThingyInListCheckBox», если объект «вещь» находится в списке, который является выбранным элементом в списке «Список объектов». Поэтому в основном мне нужно привязать его к методу «Contains» объекта «ListOfGroups» .SelectedItem и передать ему «ListOfThingys» .SelectedItem в качестве параметра.
Я испытываю желание сделать все это в коде, но я пытаюсь лучше понять привязку данных XAML, потому что я ненавижу себя и хочу, чтобы я страдал.
Возможно ли это вообще, или я попал в неизбежную "стену привязки данных", которая существует в любой другой системе привязки данных в истории разработки программного обеспечения?