0

複数のプロパティを単一のコントロールにバインドする際に問題があります。UserList と GroupList という 2 つのリストがあります。システム内のすべてのグループのチェックボックスの ListView を表示しようとしています。UserList オブジェクトには、メンバーであるグループの ID に基づく整数のリストが含まれています。UserList オブジェクトに groupList 内のグループの ID が含まれている場合、チェックボックスをオンにしたいと思います。

たとえば、GroupList には ID 1、2、3、4 が含まれる場合があります。UserList には 1 と 3 の ID のリストがあります。したがって、チェックボックス 1 と 3 はオンにして、2 と 4 はオフにしたいと思います。

これを行うには、2 つの異なるプロパティに同時にバインドする必要があり、何らかのコンバーターが必要になる可能性があります。私はこのことにかなり慣れていないので、次に何をしようか迷っています。これが私が現在持っているものです-

<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 に答える