0

我在将多个属性绑定到单个控件时遇到问题。我有两个名为 UserList 和 GroupList 的列表。我正在尝试显示系统中所有组的复选框的 ListView。UserList 对象包含一个整数列表,该列表基于它所属的组的 ID。如果 UserList 对象包含 groupList 中组的 ID,我希望选中复选框。

例如,GroupList 可能包含 ID 1、2、3、4。虽然 UserList 具有 1 和 3 的 ID 列表。因此,我希望选中复选框 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>

显然我错过了某种静态资源,但我不知道该怎么做。

任何意见,将不胜感激。

4

1 回答 1

1

好吧,经过大量研究,我最终使用了价值转换器。我把它做成 OneWay 所以它只转换,但不转换回来 - 这是我使用的代码

    <CheckBox.IsChecked>
        <MultiBinding Converter="{StaticResource CollectionToBoolConverter}" Mode="OneWay">
            <Binding Path="ID" />
            <Binding ElementName="Me" Path="User.GroupList" />
        </MultiBinding>
    </CheckBox.IsChecked>

其中 ElementName=Me 被指定为我正在使用的表单。

希望这可以帮助其他人。

于 2013-09-13T13:07:00.453 回答