Reputation: 4063
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
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