【发布时间】:2014-09-01 04:10:17
【问题描述】:
我正在使用 MVVM 模式和 MVVM Light 将事件转换为命令,在我的 XAML 中我有以下代码:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="+" Padding="0,0,0,0" Height="Auto">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
在我的视图模型中,我有以下代码:
private RelayCommand<SelectionChangedEventArgs> _myCommand;
public RelayCommand<SelectionChangedEventArgs> MyCommandCommand
{
get { return _myCommand ?? (_myCommand = new RelayCommand<SelectionChangedEventArgs>(myCommandCommand)); }
}
private void myCommand(SelectionChangedEventArgs e)
{
// code
}
但是点击事件没有被触发。但是,我对应用程序中的每个按钮都使用这种方式,当按钮进入用户控件或窗口时,会触发事件。
谢谢。
【问题讨论】:
-
你在哪里定义了命令绑定?
标签: wpf button mvvm datagrid mvvm-light