2015-09-23 35 views
0

我要在這裏切入正題,並承認我對這個東西有點新鮮,所以請耐心等待。我有一個列表myObject s。每個myObject有幾個變量。在C#中的動態搜索ListView

我想要做的是能夠將所述對象的變量插入到ListView中,然後能夠使用基本的TextBox搜索所述變量。用戶輸入時,此搜索的結果將成爲我的ListView中的唯一條目。

我填補我ListView這樣的:

ListView lv = new ListView(); 
lv.Columns.Add("FirstVariable"); 
lv.Columns.Add("SecondVariable"); 
lv.Columns.Add("ThirdVariable"); 
lv.View = View.Details; 
lv.Width = 500; 
lv.Height = 500; 

foreach (var value in myListOfObjects) 
{ 
    lv.Items.Add(new ListViewItem(new string[] { value.key, value.title, value.typeName })); 
} 

//... 

現在,我也有我的Form一個TextBox,我希望可以用我的ListView當用戶鍵入通過信息的行進行搜索。

我該怎麼做呢?

我可以在我的TextBox上使用EventHandler,以重新填充每個按鍵或其他東西上的ListView

如果是這樣,任何人都可以演示如何做?

+0

像[這](http://www.wpf-tutorial.com/listview-control/listview-filtering/)?或[this](http://stackoverflow.com/a/16550441/1841212) – VisualBean

+0

@VisualBean我認爲你可能錯過了一點點鏈接。這只是導致回到這裏:) – ViRALiC

+0

對不起,修正:) – VisualBean

回答

0

你需要做的是; On textbox_textChanged - 從列表視圖中刪除所有項目,然後添加與示例匹配的項目;

警告 - Sudo代碼傳入!

textbox_textChanged(Sender sender, SomeArgs args) 
{ 
    lv.Clear(); 
    foreach(var item in originalCollection) 
    { 
     if(item.name.Contains(textbox.Text) 
      lv.Add(item); 
    } 
}