我遇到将多个属性绑定到单个控件的问题。我有两个名为UserList和GroupList的列表。我正在尝试显示系统中所有组的复选框的ListView。 UserList对象包含基于其所属组的ID的整数列表。如果UserList对象包含groupList中组的ID,我想要检查复选框。
例如,GroupList可能包含ID 1,2,3,4。虽然UserList有一个ID为1和3的列表。我因此选中了复选框1和3,但未选中2和4。
要做到这一点,我需要同时绑定到两个不同的属性,并且可能有某种转换器。我对这个东西很陌生,所以我有点不知道接下来会尝试什么。这是我目前得到的 -
<ListView Name="ListBox1"
Grid.Row="1"
Margin="30,4,30,22"
FontFamily="Segoe UI"
FontSize="14"
ItemsSource="{Binding GroupList,
UpdateSourceTrigger=PropertyChanged}">
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox Margin="2"
Content="{Binding Name}"
IsChecked="{Binding Source={StaticResource UserGroupDataProvider}}" />
</DataTemplate>
</ListView.ItemTemplate>
显然我缺少某种静态资源,但我不知道该怎么办。
任何建议都将受到赞赏。
答案 0 :(得分:1)
嗯,经过一系列研究后,我最终使用了一个值转换器。我做了它OneWay所以它只转换,但不转换回来 - 这是我使用的代码
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CollectionToBoolConverter}" Mode="OneWay">
<Binding Path="ID" />
<Binding ElementName="Me" Path="User.GroupList" />
</MultiBinding>
</CheckBox.IsChecked>
其中ElementName = Me被指定为我正在使用的表格顶部。
希望这有助于其他人。