1

これは簡単なはずですが、機能していません。リストにバインドされたWPFコンボボックスがあります。

  • アイテムは問題なく入力されます
  • 起動時に最初のアイテムを表示したい。
  • でも!SelectedIndexが0またはそれ以外に設定されている場合、空白のままになります。

Wozzup?

コード結果:フォームの読み込み時にアイテムが選択されていません。:-(

4

2 に答える 2

1

問題は、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;
}
于 2009-10-02T06:27:42.957 に答える
0

私は、DataContext に ObservableCollection ベースのデータ型を使用する傾向があります。

于 2009-10-02T08:06:00.420 に答える