【问题标题】:How to change dropdown items in combobox with change of text?如何通过更改文本来更改组合框中的下拉项?
【发布时间】:2017-09-19 20:31:18
【问题描述】:

我正在使用 EPF C# 处理 POS。要添加销售行项目,我想使用组合框并希望通过组合框中的文本更改来更改其下拉列表的选择以进行搜索?如何使用 Textchanged 属性或任何其他方式更改组合框列表项?我也可以为此目的使用数据网格列或数据网格吗?

【问题讨论】:

  • 如果我没看错问题,你不能订阅组合框的 textinput 或 keydown 事件吗?那么你所要做的就是在事件委托中编写你的逻辑?
  • 对不起!那是我的错。我希望用户通过将产品名称写入文本框来搜索产品以添加到销售项目中,并且它将像大多数 pos 软件一样显示在 DATAGRID 中但我也想给他一些建议,因为他在 android 中为产品写名称到搜索您写一个字母的联系人,相关名称显示在列表中。那么,Datagrid 能否提供它或 Combobox 将是最佳选择,因为它有一个下拉列表?所以,请解释一下我该怎么做。

标签: c# .net wpf wpf-controls wpfdatagrid


【解决方案1】:

阅读您的 cmets 后,您似乎需要一个能够过滤项目列表的文本框。我的建议是订阅文本框“textchanged”事件。

textbox.TextChanged += Textbox_TextChanged;

然后在你用来订阅事件的方法中进行过滤

private void Textbox_TextChanged(object sender, TextChangedEventArgs e)
{
    //do list sorting here ex.)
    List<string> FilteredResults = SomeList<string>.where(i => i.Contains(textbox.text)).ToList();
}

这将为您提供过滤后的项目列表(在本例中为字符串),然后您可以将其显示在 ComboBox 中。

注意:MVVM 设计模式使这变得非常简单和干净。

【讨论】:

  • 没问题很高兴我能帮上忙!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2012-01-20
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
相关资源
最近更新 更多