如何从 WPF C# 中的另一个下拉列表中筛选下拉列表值

本文关键字:下拉列表 筛选 另一个 WPF | 更新日期: 2023-09-27 18:37:08

我无法像 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()); 

我在消息框中得到"过滤器列表项",而不是我刚刚选择的选定项目。

我所需要的只是根据我在上面提到的场景下拉列表中的用户选择来过滤脚本下拉列表。

仅供参考,我放置 xaml UI 并不是为了让问题更简单。

任何帮助将不胜感激。

谢谢

硒爱好者

如何从 WPF C# 中的另一个下拉列表中筛选下拉列表值

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