アイテムのリストを表示するコンボボックスがあります。表示されるアイテムのリストは、ラジオボタンのセットによって決定されます。ラジオボタンのクリックされたイベントにアタッチし、コンボボックスに新しいアイテムソースを設定しようとします。selectedItemをデフォルトで-1ではなく0にしたいと思います。
私は何が間違っているのですか?
<Grid>
<ComboBox Name="cb_Test" />
<RadioButton Content="List 1" Name="radioButton1" Click="radioButton1_Click" />
<RadioButton Content="List 2" Name="radioButton2" Click="radioButton2_Click" />
</Grid>
public partial class MainWindow : Window
{
List<string> list1 = new List<string>() { "list 1", "list 1", "list 1" };
List<string> list2 = new List<string>() { "list 2", "list 2", "list 2" };
ComboBoxViewModel viewModel = new ComboBoxViewModel();
public MainWindow()
{
InitializeComponent();
this.DataContext = viewModel;
cb_Test.ItemsSource = list1;
}
private void radioButton1_Click(object sender, RoutedEventArgs e)
{
cb_Test.ItemsSource = list1;
viewModel.SelectedIndex = 0;
}
private void radioButton2_Click(object sender, RoutedEventArgs e)
{
cb_Test.ItemsSource = list2;
viewModel.SelectedIndex = 0;
}
}
public class ComboBoxViewModel : INotifyPropertyChanged
{
private int selectedIndex;
public event PropertyChangedEventHandler PropertyChanged;
public int SelectedIndex
{
get { return selectedIndex; }
set
{
if (selectedIndex != value)
{
selectedIndex = value;
NotifyPropertyChanged("SelectedIndex");
}
}
}
private void NotifyPropertyChanged(string controlName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(controlName));
}
}
}