我有一个ListBox
与一些Items
和TextBox
。 TextBox
中的文字应该匹配Items
的起始字符ListBox
&应该显示过滤结果。这个怎么做? 谢谢。带有文本框的过滤器列表框项目
回答
THX给大家,但我做了简单的东西.. 希望帮助..
声明列表:
List<string> list = new List<string>();
在主窗口中:
public MainWindow() {
list.Clear();
foreach (String str in lb1.Items)
{
list.Add(str);
}
}
在框TextChanged事件:
public void t1_TextChanged(object sender, TextChangedEventArgs e)
{
if (String.IsNullOrEmpty(t1.Text.Trim()) == false)
{
lb1.Items.Clear();
foreach (string str in list)
{
if (str.StartsWith(t1.Text.Trim()))
{
lb1.Items.Add(str);
}
}
}
else if(t1.Text.Trim() == "")
{
lb1.Items.Clear();
foreach (string str in list)
{
lb1.Items.Add(str);
}
}
}
我喜欢乔什这个例子...
http://joshsmithonwpf.wordpress.com/2007/06/12/searching-for-items-in-a-listbox/#
这是类似的方法向其他环节 - 但是这一次仅仅是辉煌 - 剪切优雅好与WPF工作时要牢记(以及如何以非常简单的方式完成任务)。
thx为例,我用TextChanged事件做了它。 – 2013-03-27 04:22:40
np - 只是传播'代码的美丽:) :)欢呼 – NSGaga 2013-03-27 11:44:47
这取决于您的实施。你是否遵循MVVM模式?
如果是,那么你可以过滤你的文本框设置事件的列表框。在setter中,您可以更改列表框的内容。
<TextBox Text="{Binding SearchText}" />
private string _searchText;
public string SearchText
{
get { return _searchText; }
set
{
_searchText = value;
// Change contents of list box.
}
}
如果您没有关注MVVM,那么您需要在文本框中添加更改事件处理程序。选择TextBox并在属性窗口中检查它的事件。其中有TextChanged事件。添加该事件。无论何时改变文本框文本,这都会给你一个功能。在该功能中,您可以实现用于过滤列表框的逻辑。
是的我已经使用TextChanged事件。 thx – 2013-03-27 04:22:18
然后将此标记为答案,谢谢, – 2013-03-27 04:54:26
- 1. 在vb.net中过滤带有文本框的列表框
- 2. 实时过滤带有文本框的列表框
- 3. 带列表框的mvc3 webgrid过滤器
- 4. c#过滤列表框与文本框
- 5. 通过列表框中的选定项目更新文本框
- 6. 如何使用组合框过滤我的列表框项目?
- 7. 带文本,复选框和选择的jQuery表格过滤器
- 8. 如何过滤列表框的当前项目列表?
- 9. ASP.NET列表框选择的项目改变文本框文本
- 10. 通过文本框从列表框中过滤元素
- 11. 选择多个列表框项目来设置过滤器
- 12. 过滤列表框
- 13. 根据文本框搜索过滤列表框:WPF
- 14. 实体框架4带过滤器的通用列表方法
- 15. 基于文本框的Crossfilter过滤器
- 16. 的DataBind列表框中选择的项目文本框
- 17. 从文本框中的ASP.NET JQuery过滤器列表框值(区分大小写)
- 18. 带文本框的网格过滤器extjs
- 19. 创建带有过滤值的列表框excel
- 20. 在标题中过滤带有文本框的gridview
- 21. 检查列表框项目从文本框的值存在
- 22. 绑定列表框选择的项目到文本框
- 23. 在form2上的文本框上传递列表框项目值
- 24. 检查一组文本框中的列表框项目vb.net
- 25. Powershell列表框项目项目文本的不同值?
- 26. 带有扩展器的列表框到另一个列表框
- 27. 文本框过滤器 - 显示太多的列(重复列)
- 28. 通过与文本框绑定选择列表框中的项目
- 29. 实时过滤列表框
- 30. JS过滤器文本框输入
请不要这样与布尔值...请。 if(String.IsNullOrEmpty(t1.Text.Trim())== false)...只要放一个!否定。如果if(!String.IsNullOrEmpty(t1.Text.Trim()){}。与字符串比较相同... else if(t1.Text.Trim()==“”).... == string.Emtpy – Patrick 2016-03-19 21:12:25
是的,旧的线程,但我在谷歌中发现它,以便其他人:我**强烈建议使用ListBox的数据源来代替它。也就是说,为它的每一个项目做一个“主列表”,这是你的'list',现在创建第二个'FilteredList',并将匹配项复制到该列表中。在编辑器中,将ListBox绑定到FilteredList。这比**不断重置项目快得多 - 约15次数在我的测试中。 – 2016-09-19 14:55:38