WPF自動完成控制項

2021-09-22 13:34:38 字數 1984 閱讀 4818

介紹:

在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.布局控...