Jatin
Jatin

Reputation: 4063

Add additional items in Combobox with enum values

I am using a wpf combobox for displaying and selecting enum "BloodGroup" The BloodGroup Enum is defined as under.

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

Here is the wpf combobox code that I use to populate combobox with enum items above.

<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)]"/>

I am using the above combobox to filter rows of datagrid. To cancel the filter I need additional item in combobox displaying "Cancel Filter". How do I add an additional item in the above combobox which will be used to cancel the filter.

Upvotes: 2

Views: 471

Answers (1)

skink
skink

Reputation: 5736

You can combine different collections with CompositeCollection:

<ComboBox x:Name="BloodGroupFilter">
    <ComboBox.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding Source={StaticResource BloodGroupEnum}}"/>
            <sys:String>Cancel Filter</sys:String>
        </CompositeCollection>
    </ComboBox.ItemsSource>
</ComboBox>

Upvotes: 2

Related Questions