为了账号安全,请及时绑定邮箱和手机立即绑定

绑定按钮单击方法

绑定按钮单击方法

慕容森 2019-12-21 13:11:47
我有一个绑定到可观察对象集合的数据网格。我想做的是有一个按钮,该按钮将执行表示被单击的按钮行的对象的方法。所以我现在所拥有的是这样的:            <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"/>

因为在编写此答案期间,发布了许多其他答案,所以我不再写更多。如果您对我的一种显示方式感兴趣,或者您认为我做错了,请发表评论。


查看完整回答
反对 回复 2019-12-21
  • 3 回答
  • 0 关注
  • 660 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信