【发布时间】:2009-03-08 04:54:06
【问题描述】:
我有两个 WPF 列表框。一个是列表列表(实际上是 ObservableCollection 的列表),另一个是所有已知“Thingy”实例的列表。
这是我用于“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;
如果“thingy”对象位于“ListOfGroups”列表框中的选定项目列表中,我想要的是复选框“ThingyInListCheckBox”。所以基本上我需要将它绑定到 "ListOfGroups".SelectedItem 的 "Contains" 方法,同时将 "ListOfThingys".SelectedItem 作为参数传递给它。
我很想在代码中完成这一切,但我试图更好地理解 XAML 数据绑定,因为我讨厌自己,我希望自己受苦。
这是否可能,还是我碰到了软件开发历史上所有其他数据绑定系统中不可避免的“数据绑定墙”?
【问题讨论】:
标签: wpf data-binding