无法使用x绑定到按钮事件:在DataTemplates中绑定 - 生成XAML错误

Rob*_*ean 3 xaml binding winrt-xaml windows-store-apps xbind

使用{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>
Run Code Online (Sandbox Code Playgroud)

小智 5

我能够使用以下代码使用它:

<DataTemplate x:DataType="local:Customer">
     <StackPanel Orientation="Vertical">
         <Button Tapped="{x:Bind Clicky}" Content="{x:Bind Title}" />
     </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

好像你需要把它放在一个容器内才能工作.我不知道为什么我在猜魔术.