日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UWP x:bind

發(fā)布時(shí)間:2023/12/20 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UWP x:bind 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

x:bind 作為win10 新特性,它好在哪?為什么要用它。

最近做UWP,對(duì)代碼進(jìn)行重構(gòu),對(duì)它有了一些了解。

先說優(yōu)點(diǎn):

1.性能高,內(nèi)存小(相比傳統(tǒng)的binding)

沒圖沒真相,我先上2張圖。

x:bind又叫 "compiled data bindings", 它是在編譯的時(shí)候就確定了。

以前的Binding,是運(yùn)行時(shí)綁定,我想里面免不了各種反射。

由于x:bind是編譯時(shí),所以必須是強(qiáng)類型,不能再是object類型(以前都是給datacontext賦值),這個(gè)特性提高了性能速度,但也帶了不便,后面會(huì)講。

有點(diǎn)注意的是,由于是編譯時(shí),所以綁定的錯(cuò)誤在編譯時(shí)就會(huì)提示出來,方便調(diào)試。

?

2. 如果不制定源的話,默認(rèn)綁定源是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,不然編譯就會(huì)報(bào)錯(cuò),強(qiáng)類型,沒辦法

?

x:bind 可以綁定事件,在一定程度上簡化之前用command 綁定的不便。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><Button x:Name="button" Content="Button" Click="{x:Bind VM.Click}" HorizontalAlignment="Left" Margin="126,258,0,0" VerticalAlignment="Top" Height="113" Width="103"/></Grid> 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(){}}

?

說了這么多優(yōu)點(diǎn),那么缺點(diǎn)呢,至少我看來,由于是強(qiáng)類型,x:bind沒法做到動(dòng)態(tài)綁定,綁定源一定要是個(gè)強(qiáng)類型,不能再是object類型。

只能說看需求,在可以得情況下,還是盡量使用x:bind,畢竟性能內(nèi)存優(yōu)勢(shì)在那里擺著,實(shí)在不行,用binding也不是不可以的。

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/FaDeKongJian/p/5090781.html

總結(jié)

以上是生活随笔為你收集整理的UWP x:bind的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。