我有一个绑定到可观察对象集合的数据网格。我想做的是有一个按钮,该按钮将执行表示被单击的按钮行的对象的方法。所以我现在所拥有的是这样的: <DataGridTemplateColumn Header="Command"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Name="cmdCommand" Click="{Binding Command}" Content="Command"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>哪个不起作用并报告以下错误:Click =“ {Binding Command}”无效。“ {Binding Command}”不是有效的事件处理程序方法名称。仅生成的类或代码隐藏类上的实例方法有效。我已经看过命令绑定,但是看起来最终将只使用一个外部命令,而不是绑定到该行的对象。我在后面的代码上使用事件处理程序来工作,然后将其路由到绑定到所选行的项目(因为单击按钮时该行被选中),但这似乎是处理此问题的较差方法,我认为我我只是在这里缺少一些东西。
3 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
您有各种各样的可能性。最简单最丑陋的是:
XAML
<Button Name="cmdCommand" Click="Button_Clicked" Content="Command"/>
背后的代码
private void Button_Clicked(object sender, RoutedEventArgs e) {
FrameworkElement fe=sender as FrameworkElement;
((YourClass)fe.DataContext).DoYourCommand();
}
另一个解决方案(更好)是在上提供ICommand属性YourClass。该命令已经具有对YourClass-object 的引用,因此可以对该类执行操作。
XAML
<Button Name="cmdCommand" Command="{Binding YourICommandReturningProperty}" Content="Command"/>
因为在编写此答案期间,发布了许多其他答案,所以我不再写更多。如果您对我的一种显示方式感兴趣,或者您认为我做错了,请发表评论。
添加回答
举报
0/150
提交
取消