C# WP8数据绑定按钮单击/使用RoutedEventHandler命令

C# WP8数据绑定按钮单击/使用RoutedEventHandler命令,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,对于Windows Phone和Xaml来说,我是个新手,我决定开始使用DataTemplates,因为它看起来更整洁,我可以轻松地切换它们等等 我有一个要求,根据列表中项目上的数据,单击按钮时,我希望调用不同的函数或使用不同的参数。我认为最简单的方法是通过匿名函数将RoutedEventHandler绑定到它 当我在代码隐藏中使用表单上的静态控件进行此操作时,它工作得非常好。当我将自己的控件添加到堆栈面板等时,它也起作用,但它非常混乱 // Example of RoutedEventHand

对于Windows Phone和Xaml来说,我是个新手,我决定开始使用DataTemplates,因为它看起来更整洁,我可以轻松地切换它们等等

我有一个要求,根据列表中项目上的数据,单击按钮时,我希望调用不同的函数或使用不同的参数。我认为最简单的方法是通过匿名函数将RoutedEventHandler绑定到它

当我在代码隐藏中使用表单上的静态控件进行此操作时,它工作得非常好。当我将自己的控件添加到堆栈面板等时,它也起作用,但它非常混乱

// Example of RoutedEventHandler that works when I create the button in code behind
model.clickEventHandler = (s, e) => LoadResult(r.id);

 <ScrollViewer Name="scrvResults" >
        <ListBox Name="lbResults" ItemsSource="{Binding}">
              <ListBox.ItemTemplate>
                      <DataTemplate>
                             <Button Command="{Binding clickEventHandler}"  > 
                                   // Stuff
                                   // Doesn't crash but doesn't fire the event
                             </Button>
                             <Button Click="{Binding clickEventHandler}"  > 
                                   // Stuff
                                   // Throws a com exception
                             </Button>
                      </DataTemplate>
                </ListBox.ItemTemplate>
          </ListBox>
    </ScrollViewer>
//当我在代码隐藏中创建按钮时,RoutedEventHandler的示例会起作用
model.clickEventHandler=(s,e)=>LoadResult(r.id);
//东西
//不会崩溃但不会触发事件
//东西
//抛出com异常

我试过各种子选项。我看到的所有示例似乎都与静态函数有关。这只是我弄错的语法吗?我能不能用这种方式绑定到它?

您需要将命令绑定到一种类型的ICommand。有关更多信息,请参见此处:

可以使用交互触发器绑定按钮单击事件,而不是简单地将事件绑定到单击属性: