在UWP中使用什麼,Binding
或x:Bind
以及它們之間的區別是什麼?綁定和x之間的區別:綁定
因爲我看到很多帖子,其中人們使用Binding
,而我只與UWP中的x:Bind
綁定。
在MSDN主頁上,它只是說「由{x:Bind}
和{Binding}
創建的綁定對象在功能上基本等同。」那x:Bind
是更快。
但他們之間有什麼不同?
因爲「在功能上大體相當」並不等同。
從我引用的鏈接:MSDN
所以我的問題是:
是什麼使用綁定或x的區別:在UWP綁定?
在UWP中使用什麼,Binding
或x:Bind
以及它們之間的區別是什麼?綁定和x之間的區別:綁定
因爲我看到很多帖子,其中人們使用Binding
,而我只與UWP中的x:Bind
綁定。
在MSDN主頁上,它只是說「由{x:Bind}
和{Binding}
創建的綁定對象在功能上基本等同。」那x:Bind
是更快。
但他們之間有什麼不同?
因爲「在功能上大體相當」並不等同。
從我引用的鏈接:MSDN
所以我的問題是:
是什麼使用綁定或x的區別:在UWP綁定?
以下是可能不完整,但一些主要的區別是
老式{Binding }
{x:Bind }
而且starting with build 14393,{x:Bind }
支持:
較新的{X:綁定}是一個在運行時稍微快一些,但同樣重要的是它會給錯誤的綁定帶來編譯錯誤。有了{綁定},在大多數情況下你只會看到一個空的控件。
{x:Bind}
執行在編譯時生成的專用代碼。 {Binding}
使用通用運行時對象檢查。因此,{x:Bind}
具有很好的性能,並提供了綁定表達式的編譯時驗證。它通過使您能夠在作爲頁面的部分類生成的代碼文件中設置斷點來支持調試。
因爲{x:Bind}
使用生成的代碼來實現它的好處,它需要編譯時的類型信息。這意味着您無法提前綁定到您不知道類型的屬性。因此,不能將{x:Bind}
與DataContext屬性(其類型爲Object)一起使用,並且在運行時也會發生更改。 {x:Bind}
標記擴展 - 新的Windows 10 - 是{Binding}
的替代品。 {x:Bind}
缺少{Binding}
的一些功能,但運行時間更少,內存更少,並且支持更好的調試。
您可以添加您引用的來源嗎? –
可以說,最重要的區別是(如[{x:Bind}標記擴展]所述(https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/x-bind- *「編譯的綁定是強類型的,並且將解析路徑中每一步的類型,如果返回的類型沒有成員,**它會在編譯時**失敗。」* – IInspectable