本文介绍了如何从 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 中的数据网格内的按钮触发事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 18:31