如何从WPF C#中的另一个下拉列表中过滤下拉值?

时间:2012-06-12 20:44:33

标签: c# wpf user-controls wpf-controls

我无法像在c#form中那样过滤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用于简化问题。

任何帮助都将不胜感激。

由于

seleniumlover

1 个答案:

答案 0 :(得分:2)

您似乎使用List<T>作为下拉控件的ItemsSource,但在列表更改时不会更新UI。使用ObservableCollections在集合更改时通知UI。