天天看點

WPF MultiBinding 給資料目标指派後綁定無效的問題

近來用WPF制作做了一個IP控件的試驗,IP數值通過TextBox輸入(也可以定制0-254的輸入),需要4個TextBox多路綁定至System.Net.IPAddress,如圖前4個TextBox作為數值輸入,多路綁定至IPAddress, 最後一個TextBox綁定了IPAddress,且依賴項屬性IPAddressProperty 變化時會引發函數IPAddressChangedCallback,進而改變前4個TextBox。

前4個TextBox的多路綁定以TextBox為資料源,IPAddress為資料目标

後一個TextBox的綁定以IPAddress為資料源

WPF MultiBinding 給資料目标指派後綁定無效的問題

結果如下:

1、改變前4個TextBox任意一個值都會引起最後一個TextBox的變化。

2、改變最後一個TextBox也會導緻對應前4個TextBox的變化。

3、一旦改變了最後一個TextBox的數值,即更改了IPAddress,則前4個TextBox的綁定便會無效,即無法改變IPAddress。

4、在程式中主動設定IPAddress也會導緻多路綁定無效,判定方法為多路綁定的轉換函數不執行。

總結:多路綁定中改變資料目标後,會導緻多路綁定無效。具體原因不明,請大牛指點。

代碼:http://download.csdn.net/detail/chifuqi/6039159