近來用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為資料源
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPRFGeW5mWwhmMZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DMwUDOzcjMxEDMzgDMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
結果如下:
1、改變前4個TextBox任意一個值都會引起最後一個TextBox的變化。
2、改變最後一個TextBox也會導緻對應前4個TextBox的變化。
3、一旦改變了最後一個TextBox的數值,即更改了IPAddress,則前4個TextBox的綁定便會無效,即無法改變IPAddress。
4、在程式中主動設定IPAddress也會導緻多路綁定無效,判定方法為多路綁定的轉換函數不執行。
總結:多路綁定中改變資料目标後,會導緻多路綁定無效。具體原因不明,請大牛指點。
代碼:http://download.csdn.net/detail/chifuqi/6039159