私はWPFが新しく、MVVMパターンに従っているので、viewmodelクラスを使用してComboxに値のリストをバインドしようとしています。WPFのViewModelを介してコンボボックスに値をバインド
これは私のセットアップSelectedIndex="0"
は、ここで私はこの
をどうやったのか、これは、コンボボックスのXMLですが、その、コンボボックスのドロップダウンにデフォルトのアイテムとして最初の項目を結合しない以外、正常に動作している
<ComboBox VerticalAlignment="Top"
Loaded="ComboBox_Loaded" ItemsSource="{Binding Samples}" SelectedItem="{Binding Path=SAMPLE_NAME}"
SelectionChanged="ComboBox_SelectionChanged" DisplayMemberPath="SAMPLE_NAME" SelectedIndex="0" SelectedValuePath="SAMPLE_ID" />
これでたSampleModelモデルクラス
public class SampleModel
{
public int SAMPLE_ID { get; set; }
public string SAMPLE_NAME { get; set; }
}
これはこれは
public partial class SamplePopup : Window
{
public SamplePopup()
{
InitializeComponent();
this.DataContext = new SampleViewModel();
}
private void ComboBox_Loaded(object sender, RoutedEventArgs e)
{
try
{
SampleViewModel ddl = (SampleViewModel)this.DataContext;
ddl.FillSamplesDropdown(null);
}
catch (Exception ex)
{
throw ex;
}
}
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
SampleViewModel ddl= (SampleViewModel)this.DataContext;
// ... Get the ComboBox.
var comboBox = sender as ComboBox;
...
}
catch (Exception ex)
{
throw ex;
}
}
}
ええと、SelectedIndexは地獄のように厄介です。 ItemsSourceとSelectedItemを使うと常に良いです。 SelectedItemで見つかったインスタンスがItemSourceで見つかることを確認してください。 – Will