成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

各種簡單實現WPF搜索列表功能方法介紹

開發 開發工具
WPF搜索列表的實現方法有很多種。我們在文章中為大家總結出了四種實現方法,希望對又需要的朋友有所幫助,加深我們對WPF的認識。

WPF開發工具的正確應用,能夠方便的實現一些以前難以實現的圖形界面處理方法。在這里我們就先來了解一下有關WPF搜索列表的實現方法。#t#

現在很多程序都提供了搜索功能。比如MSN的Search Contract,VS和Blend里的Property Search。一般是從一個比較大的,用戶不太方便查找的列表中按關鍵字搜索符合條件的項目。

 

下面就來介紹一下WPF搜索列表的實現。對WPF的類庫功能不太熟悉的人可能會想到下面幾個解決方案。

1. 根據關鍵字,對List綁定到的數據源進行修改,把不符合關鍵字的數據項暫時移出列表。這個就不評價了,入門選手的方案。性能和代碼量都能讓你瞠目結舌。

2. 上面的移出列表不太好?那就不移走了,把不想看到的Item的Visibility設置成Collapsed不就行了?這是個學院派的方案,遇到一個問題解決一個,而且看上去又是那個的合情理。但是,這個要如何實現呢?不要指望直接去設置Item的Visibility,因為控件上的順序和數據上的順序不一定相同。那你就要把Visibility綁定吧。那就要到數據上加個IsMatched屬性吧。好了,現在每個Item都多了一個屬性和一個綁定。

3. 使用Converter過濾,ConverterParameter作為關鍵字。多完美啊,多么具有新創意識啊。這個是東方不敗式的方案。微軟也不是吃干飯的,如果這個Convert真是萬金油似的,它就不叫Converter了。如果沒有問題也就罷了,可這個方案的確是有問題的。問題如下。

a. Converter的返回值是一個新的List,而不是你本來打算綁定到的那個List了。也就是說ListBox的ItemsSource將綁定到一個在Converter中生成的List中。如果哪天你想得到這個List,好么,去Converter里找吧。它和Data Model根本不在一層。這時你有兩個選擇,要么破壞軟件的層次結構,要么用其它方案重寫這個功能。

b. 性能問題,筆者所在的項目就在用這個方法。當項目數超過3000時,性能就已經讓人無法忍受了。這時其實用數據綁定的角度,你沒得解決方案,無論開啟數據綁定的異步功能,還是自己用BackgroundWorker異步,都不能達到想要的效果。

當然,如果你的項目,使用Converter完全可以滿足你的要求,而且你也已經把Converter用得如火純青,那就用吧,一點問題也沒有。筆者所在項目現在就在用這個方法,因為“它可以工作,那就別去動它。”

好了,現在就來介紹目前筆者所能找到的最佳方案——使用CollectionViewSource的Filter事件,在事件處理函數中你會得到要處理的一個Item,然后你來決定這個Item是不是要顯示在界面上。這個方案是使用微軟內置的功能實現的,也就是說微軟第一次發布WPF的時候,就已經預見到了類似的需求并提供了支持,而且在他的官方示例中也演示了一翻。所心兩年前就已經有人解釋過個方案(有時要翻墻)就不足為奇了。

筆者寫了一個示例程序,即使用6000項字符串數據進行測試,速度還是很快的。

工作時常常會遇到這樣的情況,要實現諸如WPF搜索列表這樣的功能時,有時一下子就能想到很多個方案出來。然后就直接著手開始寫代碼,寫著寫著才發現吃力不討好。其實這不是努力工作,而是犯懶的表現。因為評估多個解決方案從而找出最佳方案,或是研究一個功能的Best Practice是更需要腦力的。用第一感覺寫代碼,其實只是一種純粹的體力勞動,而且不會有什么提高。“

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-25 11:04:51

WPF Border

2009-12-23 16:39:55

WPF命令

2009-12-28 11:14:29

WPF顯示文本

2009-12-24 13:31:25

WPF UI設計

2009-12-24 10:04:31

WPF右鍵菜單

2009-12-23 10:01:26

WPF功能

2009-12-25 17:02:33

WPF多媒體

2009-12-28 13:47:35

WPF對話框

2009-12-07 15:02:48

PHP搜索數組

2009-12-25 09:34:50

WPF顯示HTML

2010-08-31 19:53:25

DHCP功能

2009-12-23 18:06:25

WPF模板

2009-12-24 14:18:57

WPF類型轉換

2009-12-25 10:28:10

WPF路由事件

2009-12-25 10:05:06

WPF資源

2009-12-28 16:37:46

WPF異步模式

2012-09-28 09:58:35

Outlook 201Office 2013

2010-06-21 17:10:02

Linux Arp命令

2009-12-25 16:40:49

WPF優勢

2010-09-02 08:48:58

蘋果新款播放列表功能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999久久久久久久久6666 | av国产精品毛片一区二区小说 | 一级在线观看 | 国产成人一区二区三区精 | 欧美久久精品一级黑人c片 91免费在线视频 | 99在线视频观看 | 日韩在线小视频 | 中文字幕在线视频免费视频 | 国产精品电影在线观看 | 日韩在线免费电影 | 韩国av网站在线观看 | 久久爱黑人激情av摘花 | 亚洲高清一区二区三区 | 色综合视频 | av一级久久 | 免费观看黄色一级片 | 国产精品99久久久久久www | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 麻豆91精品91久久久 | 免费看的黄网站 | 成人自拍视频网站 | 激情久久av一区av二区av三区 | 四虎永久在线精品免费一区二 | av黄色片 | a视频在线观看 | 一级做a爰片性色毛片视频停止 | 成人av电影网 | 中文字幕精品视频在线观看 | 一级黄色录像毛片 | av片在线观看 | 欧美成人免费电影 | 91精品国产91久久综合桃花 | 免费欧美视频 | 国产成人99久久亚洲综合精品 | 亚洲日本一区二区 | h在线免费观看 | 日日摸夜夜爽人人添av | 亚洲视频一区在线 | 99影视 | 亚洲免费视频在线观看 | 成人影院免费视频 |