2015-10-23 28 views
0

在Windows 8.1,我可以做到這一點如何使用X:沒有綁定任何財產

<Grid Margin="8" 
     VerticalAlignment="Bottom" 
     Tapped="Grid_OnTapped" 
     Tag="{Binding}"></Grid> 

那麼事件Grid_OnTapped裏面,我可以使用電網的Tag屬性知道哪些項目被竊聽。

但是當更改爲x:綁定時,它不再有效。例外扔:「對象引用不設置到對象的實例」

進一步的測試,該代碼會顯示類

<TextBlock Text="{x:Bind}/> 

的名稱,但該唯一工作

請幫幫我。謝謝

+0

你能展示你的構造函數的代碼嗎? – Herdo

回答

1

{x:Bind}是用於綁定到代碼視圖中的屬性。它具有性能優勢而不是{Binding},因爲正常綁定使用反射來查找屬性,而x:Bind不會。 x:Bind將綁定到代碼隱藏中的強類型屬性。

通常,您可以使用x:Bind來獲得XAML的性能。

對您而言,將DataContext綁定爲您的情況會更好,在您的情況下,只是{Binding}。這是你以前已經做過的事情。

也許您誤解了x:Bind的用法?這是一個article解釋應該如何使用它。

+0

謝謝。我誤解了x:綁定。認爲這是{綁定}替換。發現這是一個全新的機制。 –

+0

可以說,'{綁定}'上的'{x:Bind}'更重要的改進是可維護性方面。它執行**編譯時**驗證,儘早捕獲錯誤。另外值得注意的是:'{x:Bind}'也可以用於函數。它不是唯一的屬性(參見[{x:Bind}標記擴展](https://msdn.microsoft.com/en-us/windows/uwp/xaml-platform/x-bind-markup-extension))。 – IInspectable