Binding(五):多路綁定


    Binding不止能綁定一個源,它還能綁定多個源,這就是我們這節要講的多路綁定:MultiBinding。

    

    使用多路綁定跟一般的綁定還是有區別的,首先它並不能很好的在標記擴展中使用,另外,使用多路綁定必須為其指定多路轉換器,不指定的話系統不知道怎么處理從這幾個源過來的數據,下面通過一個例子來講解一下:

    例子的情景是這樣的,登錄界面有兩個文本框和一個按鈕,只有當兩個文本框有值的時候按鈕才是可用的。

    首先定義多路值轉換器:

    多路轉換器需要繼承IMultiValueConverter接口,用法跟單值轉換器是一樣的,就不再細說了。

    前台Xaml代碼如下:

    使用多路綁定,就得寫成屬性元素的形式,指定多路綁定的Converter,並且將更新設置為屬性改變時,這樣才能及時更新到button身上。

    將這兩個的Text綁定到Button的IsEnabled屬性上,就能實現上述情景,效果如圖:

 

 

 

 

    只有當兩個文本框都有值的時候登錄按鈕才能使用,至於為什么密碼框不使用PasswordBox控件,那是因為PasswordBox控件的Password屬性不是依賴屬性,Binding只能綁定依賴屬性,在它身上不起作用。

   關於依賴屬性,我們下節開講,Binding相關到此結束...

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM