如何在没有任何 属性 的情况下使用 x:Bind
How to use x:Bind without any property
在Windows8.1中,我可以做到
<Grid Margin="8"
VerticalAlignment="Bottom"
Tapped="Grid_OnTapped"
Tag="{Binding}"></Grid>
然后在事件 Grid_OnTapped 中,我可以使用 Grid 的 Tag 属性 来知道哪个项目被点击了。
但改成x:Bind后就不行了。抛出异常:"Object reference is not set to an instance of an object"
进一步测试,这段代码会显示class
的名称
<TextBlock Text="{x:Bind}/>
但这是唯一有效的方法
请帮忙。谢谢
{x:Bind}
用于绑定到视图的 code-behind 中的属性。与 {Binding}
相比,它具有 性能优势 ,因为普通绑定使用反射来查找属性,而 x:Bind
则不然。 x:Bind
将绑定到代码隐藏中的强类型属性。
通常,您会使用 x:Bind
在 XAML
中获得性能。
在您的情况下,最好将 DataContext
绑定到 DataContext
,而在您的情况下,只是 {Binding}
。这是你之前已经做过的。
也许你误解了x:Bind
的用法?这是一个 article 解释应该如何使用它。
在Windows8.1中,我可以做到
<Grid Margin="8"
VerticalAlignment="Bottom"
Tapped="Grid_OnTapped"
Tag="{Binding}"></Grid>
然后在事件 Grid_OnTapped 中,我可以使用 Grid 的 Tag 属性 来知道哪个项目被点击了。
但改成x:Bind后就不行了。抛出异常:"Object reference is not set to an instance of an object"
进一步测试,这段代码会显示class
的名称<TextBlock Text="{x:Bind}/>
但这是唯一有效的方法
请帮忙。谢谢
{x:Bind}
用于绑定到视图的 code-behind 中的属性。与 {Binding}
相比,它具有 性能优势 ,因为普通绑定使用反射来查找属性,而 x:Bind
则不然。 x:Bind
将绑定到代码隐藏中的强类型属性。
通常,您会使用 x:Bind
在 XAML
中获得性能。
在您的情况下,最好将 DataContext
绑定到 DataContext
,而在您的情况下,只是 {Binding}
。这是你之前已经做过的。
也许你误解了x:Bind
的用法?这是一个 article 解释应该如何使用它。