UWP x:bind
x:bind 作為win10 新特性,它好在哪?為什么要用它。
最近做UWP,對代碼進行重構,對它有了一些了解。
先說優點:
1.性能高,內存小(相比傳統的binding)
沒圖沒真相,我先上2張圖。
x:bind又叫 "compiled data bindings", 它是在編譯的時候就確定了。
以前的Binding,是運行時綁定,我想里面免不了各種反射。
由于x:bind是編譯時,所以必須是強類型,不能再是object類型(以前都是給datacontext賦值),這個特性提高了性能速度,但也帶了不便,后面會講。
有點注意的是,由于是編譯時,所以綁定的錯誤在編譯時就會提示出來,方便調試。
?
2. 如果不制定源的話,默認綁定源是page或者是usercontrol。
<TextBlock Text="{x:Bind Title}"/><Button Content="{x:Bind VM.Name}"/> public sealed partial class MainPage : Page{public string Title = "Hi x:bind";public ViewModel VM;public MainPage(){this.InitializeComponent();VM = new ViewModel();}}public class ViewModel{public string Name = "I'm a button";public void Click(){}}上面就是普通的用法。
下面我講一下怎么在模板里面綁定和怎么綁定事件。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><Grid.Resources><DataTemplate x:Key="dateTemplate" x:DataType="local:ViewModel"><Button Content="{x:Bind Name}"/></DataTemplate></Grid.Resources><ContentControl ContentTemplate="{StaticResource dateTemplate}" Content="{x:Bind VM}"/></Grid>這里注意一定要給模板制定DataType,不然編譯就會報錯,強類型,沒辦法
?
x:bind 可以綁定事件,在一定程度上簡化之前用command 綁定的不便。
?
說了這么多優點,那么缺點呢,至少我看來,由于是強類型,x:bind沒法做到動態綁定,綁定源一定要是個強類型,不能再是object類型。
只能說看需求,在可以得情況下,還是盡量使用x:bind,畢竟性能內存優勢在那里擺著,實在不行,用binding也不是不可以的。
?
?
?
?
轉載于:https://www.cnblogs.com/FaDeKongJian/p/5090781.html
總結
以上是生活随笔為你收集整理的UWP x:bind的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015年度个人总结和计划
- 下一篇: swift和oc区别----属性部分(参