我有一個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