本文介绍了如何从 Silverlight 和 MVVM 中的数据网格内的按钮触发事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在数据网格的第一列有按钮.我正在使用 MVVM 并尝试将 Command 绑定到 ViewModel 中的 Command,但是当我单击每一行中的按钮时,它不起作用(它不会在 ViewModel 中调用 Command)但是如果我将该按钮移出数据网格,它就可以正常工作.
I have button at first column in datagrid. I am using MVVM and try to bind Command to Command in ViewModel but when I click button in each row, it don't work (It don't call Command in ViewModel) but if I move that button out of datagrid it's working properly.
如何从 MVVM 中数据网格内的按钮触发事件?
How can I fire event from button inside datagrid in MVVM?
更新 1:
XAML 的代码是:
<datagrid:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center">
<Button x:Name="button" Content="View" Margin="5" DataContext="{StaticResource XDataContext}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding ViewOrganizationCommand}"
CommandParameter="{Binding ElementName=dtgOrganizations, Path=SelectedItem}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</DataTemplate>
</datagrid:DataGridTemplateColumn.CellTemplate>
ViewModel 的代码是:
ViewModel's code is:
public ViewModelCommand ViewOrganizationCommand { get; set; }
推荐答案
我通过在 中使用 EventToCommand 行为解决了这个问题MVVMLight 工具包
这篇关于如何从 Silverlight 和 MVVM 中的数据网格内的按钮触发事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!