使用{x:Bind}
标记语法,您可以绑定到事件,前提是该方法满足以下要求:
- 匹配事件的签名。
- 或没有参数。
- 或具有相同数量的可从事件参数类型分配的类型参数。
这在 DataTemplate 之外工作得很好。一旦绑定发生在 DataTemplate 中,编译器就会生成以下错误:
Xaml 内部错误错误 WMC9999:对象引用未设置为对象的实例。
绑定到 DataTemplates 中的事件的修复方法是什么?
完整的示例代码在这里。
下面的示例代码片段 - 请注意第一个按钮(第 2 行)很好,第二个按钮(第 6 行)也很好。如果您注释掉第 6 行并在第 7 行中添加注释,则会发生错误。
<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button Tapped="{x:Bind Click}" Content="WORKING"/>
<ListView ItemsSource="{x:Bind Names}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Customer">
<Button Content="{x:Bind Title}"/>
<!--<Button Tapped="{x:Bind Clicky}" Content="{x:Bind Title}"/>-->
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>