介紹:
在wpf中缺少乙個支援自動完成的控制項,最接近的控制項是combobox ,它也是實現本篇文章的乙個基礎控制項。
背景:
乙個自動完成控制項允許使用者輸入文字的時候,控制項會盡可能的去查詢出乙個使用者已經輸入的文字選擇項。最流行的自動完成處理是通過查詢這個控制項當前文字的開頭部分。
它是如何運作:
下面是我們關心的一些combobox中的屬性:
我們通過使用上面的屬性結合乙個控制延遲查詢的時間,和允許使用者附加新的資料來源的事件,以及一些風格樣式,來實現自動完成控制項。(autocomplete.xaml.cs檔案中)
使用這個控制項
<
window
x:class
="gui.testwindow"
xmlns
=""xmlns:x
=""xmlns:ctr
="clr-namespace:gui.controls"
title
="auto complete test"
height
="200"
width
="300"
loaded
="window_loaded"
>
<
stackpanel
>
<
stackpanel.resources
>
<
resourcedictionary
source
="/gui.controls;component/styles/autocomplete.styles.xaml"
/>
stackpanel.resources
>
<
label
>
cities:
label
>
<
ctr:autocomplete
x:name
="autocities"
selectedvaluepath
="cityid"
displaymemberpath
="name"
patternchanged
="autocities_patternchanged"
style=""
delay
="500"
/>
stackpanel
>
window
>
類似乙個combobox,自動完成控制項利用displaymemberpath 和selectvaluepath 屬性來繫結具體的資料來源
//////occurs when the user stops typing after a delayed timespan
///
///
///
protected
void
autocities_patternchanged(
object
sender,
gui.controls.autocomplete.autocompleteargs args)
我們能利用patternchanged事件來監聽控制項上當前輸入資料的改變。
有趣的地方:
利用mvvm模式能建立乙個任何實體的檢視模型,並將其繫結到具有突顯屬性的資料來源上。通過使用樣式,這突顯的部分將顯示在下拉框中。
說明:
**很簡單,很容易看懂。有任何問題請提出來改正,謝謝!紅色部分是自己加的。
WPF控制項
什麼是控制項?控制項是指資料和方法的封裝,而且控制項有自己的方法和屬性。wpf設計ui語言是xaml,它能將使用者資料處理完成後展示出來。我們可以把控制項想像成乙個控制項是乙個容器,容器裡面的內容就是控制項的內容。控制項的內容可以直接是資料,也可以是控制項。wpf中也有預設不能看到的控制項,如doc...
WPF控制項
控制項是指對資料和方法的封裝。控制項可以有自己的屬性和方法,其中屬性是控制項資料的 簡單訪問者,方法則是控制項的一些簡單而可見的功能 控制項建立過程包括設計 開發 除錯 就是所謂的3ds開發流程,即design develop debug 工作,然後是控制項的使用。開發 者應該掌握的三項主要內容是 ...
wpf 控制項
wpf 是資料驅動ui,資料是核心,是主動的,ui從屬於資料並表達資料,是被動的 我們用ui元素響應使用者的操作,wpf把那些能夠展示資料,響應使用者操作的ui元素稱為控制項control 在wpf中,我們關注的是抽象的資料和行為而不是控制項的具體形象。日常生活中經常遇到的控制項,有6類 1.布局控...