1

C#フォームのようにWPFフォームでドロップダウンをフィルタリングできません..

LoadUserControl()以下に示すように、シナリオ ドロップダウンのリストを作成し、それをメソッドのアイテム ソースとして使用しました。

  public class FilterListItem
  {
    public string Filter { get; set; }
  }

  public LoadUserControl()
  {
  InitializeComponent();
  List<FilterListItem> FilterList = new List<FilterListItem>();
  FilterList.Add(new FilterListItem() { Filter = "Make" });
  FilterList.Add(new FilterListItem() { Filter = "Model" });
  FilterList.Add(new FilterListItem() { Filter = "Year" });
  myscenario.ItemsSource= FilterList;
  myscenario.SelectedItem= "Model";
  }

シナリオドロップダウンからの選択に従ってフィルタリングするためのスクリプトドロップダウン用のコードを次に示します。

private void myscenario_SelectionChanged(object sender, SelectionChangedEventArgs e)
  {

 if (myscenarios.SelectedItem.ToString() == "Model")
    {
     Scriptlist.Add(script1);
     Scriptlist.Add(script2);
     break;
    }
 else if (myscenarios.SelectedItem.ToString() == "Make")
    {
     Scriptlist.Add(script3);
     Scriptlist.Add(script4);
     break;
    }

else
    {
     Scenariolist.Add(sc5);
     Scenariolist.Add(sc6);
    }
 }

スクリプトを実行すると、UI はデフォルト値のモデルのみになり、ドロップダウンから他の値を選択すると、選択した項目が「モデル」として表示されます。

また、シナリオ ドロップダウンから選択した項目の値をメッセージ ボックスでデバッグすると、次のようなメッセージが表示されます。

**MessageBox.Show(myscenarios.SelectedItem.ToString()); 

//メッセージ ボックスに、選択した項目ではなく「Filterlistitem」が表示されます。**

必要なのは、上記のシナリオ ドロップダウンでのユーザーの選択に従って、スクリプト ドロップダウンをフィルター処理することだけです。

参考までに、質問を簡単にするためだけに xaml UI を配置しませんでした。

どんな助けでも大歓迎です。

ありがとう

セレン恋人

4

1 に答える 1

2

リストが変更されたときにUIを更新しないドロップダウンコントロールList<T>として使用しているようです。ObservableCollectionsItemsSourceを使用して、コレクションが変更されたときに UI に通知します。

于 2012-06-12T22:34:55.013 に答える