摘要
在做WPF過程中,編寫前端UI時,如果還沒有對接數據來源,可能無法很直觀的看見頁面呈現效果,設計窗口也無法呈現直觀的設計效果,又或者在綁定時VS無法給予屬性提示等,那么設計時綁定
就可以比較友好的解決這一點。
設計時綁定與運行時(普通)綁定區別
類別 | 運行時(普通)綁定 | 設計時綁定 |
---|---|---|
編寫Binding時是否有提示 | × | √ |
設計界面時是否能看見數據展示效果 | × | √ |
兩種綁定是否可以同時兼容 | √ | √ |
如何實現
1、創建一個用於管理設計的靜態類
實體模型直接復用正常的模型就可以了,這里直接給個初始值
2、在窗體中引用設計命名空間
# WPF設計命名空間
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
# 應用本地根命名空間
xmlns:local="clr-namespace:BlankApp1"
3、為窗體引入設計時數據上下文
d:DataContext="{x:Static local:DesignInstance.designStudent}"
加載剛才編寫的靜態類,通過靜態類找到我們要綁定的屬性
4、編寫綁定
可以看出,現在不僅在編寫Binding時有提示,還能立馬呈現數據,這不比純手寫靠譜多了。
再給大家看看正常不使用設計時綁定編寫Binding時的效果:
5、啟動時還是會使用正常的數據上下文綁定
Tips:如果綁定失敗,那是因為默認上下文是整個ViewModel,而要綁定的字段則是一個實體對象里的一個屬性,所以在XAML中還需加上屬性名,或指定上下文為實體對象。如果屬性是直接寫在ViewModel中的則無需做這步操作。
總結
設計時綁定非常適合在初期還未對接真實數據或還在設計階段時使用,它能在設計界面時所見即所得,且能為綁定提示屬性,防止出錯。xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
該命名空間除了設計時綁定,還提供了很多對於設計的輔助操作,如設計時寬度高度等,只需要在屬性前面加上命名空間前綴。