【问题标题】:WPF filtering ListBox after ComboBox selected changes c#选择组合框后WPF过滤列表框更改c#
【发布时间】:2013-07-26 17:02:35
【问题描述】:

我有 ComboBox 绑定到 1 个数据表(1 列“国家”)和列表框绑定到另一个 1(2 列“名称”,“国家”)。 如何在组合框更改中对所选项目进行列表框过滤?

例如:

组合框值: 德国、波兰、俄罗斯

数据表绑定到列表框:

Name | Country 
John | GER
Luke | POL
Sasha| RUS
CJ   | GER
Carl | POL

当我在组合框中选择 GER 时,我想刷新列表框以仅查看:
约翰
CJ

我已经用过滤器过滤到数据表

   dataSet.Tables["Name"].DefaultView.RowFilter = "Country Like '%" + comboBoxFilter.Text + "%' ";

但是我的结果延迟了 1 次点击。

 change to | result

 GER       | no change
 POL       | now I see GER names
 RUS       | now I see POL names
 POL       | now I see RUS names

为什么会延迟?

【问题讨论】:

  • 您可以发布您的绑定或设置项目来源吗?
  • listBoxNames.DataContext = dataSet.Tables["Names"];
  • 过滤后是否刷新表格?
  • 是的,我愿意。没有任何区别。

标签: c# wpf combobox listbox filtering


【解决方案1】:
combobox.text   is delayed for 1 event

要在我需要的选择更改事件代码中获取实际选择的值

DataRowView drw = (DataRowView)(sender as ComboBox).SelectedItem;
string text = drw["Type"].ToString() ;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2022-01-23
    • 2020-10-28
    • 2020-04-01
    相关资源
    最近更新 更多