これは簡単なはずですが、機能していません。リストにバインドされたWPFコンボボックスがあります。
- アイテムは問題なく入力されます
- 起動時に最初のアイテムを表示したい。
- でも!SelectedIndexが0またはそれ以外に設定されている場合、空白のままになります。
Wozzup?
コード結果:フォームの読み込み時にアイテムが選択されていません。:-(
これは簡単なはずですが、機能していません。リストにバインドされたWPFコンボボックスがあります。
Wozzup?
コード結果:フォームの読み込み時にアイテムが選択されていません。:-(
問題は、ComboBoxのアイテムが(バインディングによって)バックグラウンドスレッドに入力されているため、SelectedIndexを0に設定しているときに、リストにアイテムがないことだと思います。
その場合の秘訣は、ComboBoxのItemContainerGeneratorでStatusChangedイベントを処理し、そこに選択したインデックスを設定することです。
comboBox1.ItemContainerGenerator.StatusChanged += ItemContainerGenerator_StatusChanged;
void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
if (comboBox1.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)
{
return;
}
// unhook the event - we don't need it now
comboBox1.ItemContainerGenerator.StatusChanged -=
ItemContainerGenerator_StatusChanged;
comboBox1.SelectedIndex = 0;
}
私は、DataContext に ObservableCollection ベースのデータ型を使用する傾向があります。