2

列挙型「BloodGroup」を表示および選択するために wpf コンボボックスを使用しています。BloodGroup 列挙型は以下のように定義されています。

    public enum BloodGroup : byte {
    A_Positive,
    A_Negative,
    B_Positive,
    B_Negative,
    AB_Positive,
    AB_Negative,
    O_Positive,
    O_Negative,
    }

上記の列挙項目をコンボボックスに入力するために使用する wpf コンボボックス コードを次に示します。

<UserControl.Resources>
    <ObjectDataProvider x:Key="BloodGroupEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="enums:BloodGroup" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</UserControl.Resources>

<ComboBox x:Name="BloodGroupFilter" ItemsSource="{Binding Source={StaticResource BloodGroupEnum}}" 
              cal:Message.Attach = "[Event SelectionChanged] = [Action BloodGroupFilterChanged(BloodGroupFilter)]"/>

上記のコンボボックスを使用して、データグリッドの行をフィルタリングしています。フィルターをキャンセルするには、「フィルターのキャンセル」を表示するコンボボックスに追加の項目が必要です。フィルターをキャンセルするために使用される上記のコンボボックスに追加のアイテムを追加するにはどうすればよいですか。

4

1 に答える 1

2

CompositeCollectionさまざまなコレクションを次のように組み合わせることができます。

<ComboBox x:Name="BloodGroupFilter">
    <ComboBox.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding Source={StaticResource BloodGroupEnum}}"/>
            <sys:String>Cancel Filter</sys:String>
        </CompositeCollection>
    </ComboBox.ItemsSource>
</ComboBox>
于 2012-11-14T15:10:53.627 に答える