Насколько я понимаю, это то, что вам нужно -
Вот как я это сделал
1) Код сзади (с двумя перечислениями)
public enum Enum1{R = 0, O = 1,H = 2,I = 3,T = 4}
public enum Enum2{A = 0,S = 1, I = 2,T = 3}
public partial class Window1 : Window, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private bool toggleItemSource;
public bool ToggleItemSource
{
get
{
return this.toggleItemSource;
}
set
{
this.toggleItemSource = value;
this.PropertyChanged(this, new PropertyChangedEventArgs("ToggleItemSource"));
}
}
public Window1()
{
InitializeComponent();
this.DataContext = this;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
this.ToggleItemSource = this.ToggleItemSource ? false : true;
}
}
XAML
<Window x:Class="Listbox_with_dynamic_data_source.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Listbox_with_dynamic_data_source"
Title="Window1" Height="300" Width="300">
<ObjectDataProvider ObjectType="{x:Type sys:Enum}"
MethodName="GetValues"
x:Key="Enum2Provider">
<ObjectDataProvider.MethodParameters>
<x:TypeExtension Type="{x:Type local:Enum2}" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<Grid>
<!-- ListBox-->
<ListBox x:Name="DynamicListBox"
Padding="10" HorizontalAlignment="Left" Width="52" Margin="20,21,0,115">
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource Enum1Provider}}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ToggleItemSource,
UpdateSourceTrigger=PropertyChanged
}"
Value="False">
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource Enum2Provider}}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
<!-- Toggle Button -->
<Button Height="29"
Margin="94,45.44,59,0"
Name="button1"
VerticalAlignment="Top"
Click="button1_Click"
Content="ToggleItemSource" />
</Grid>
Нажатие на кнопку «Переключить источник элементов» переключит источник элементов