c# – DataGridTemplateColumn中的命令绑定

我正在开发一个Silverlight应用程序,它广泛使用Prism,MVVM模式和MEF.出于几个原因,我选择遵循View-first方法.

在其中一个视图中有一个DataGrid,该网格的一个列是DataGridTemplateColumn,它只有一个Button.

我想在Button上定义一个Command和一个CommandParameter. Command应该是ViewModel的DelegateCommand. CommandParameter应该是直接来自dataGrid的SelectedItems列表.

我已经尝试了几种方法来执行此操作,但Command或CommandParameter都为null.

它遵循我最初编写的代码:

<sdk:DataGridTemplateColumn>
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button Width="15" Height="15" Content=">" 
                    Command="{Binding UpdateSearchParametersCommand}" 
                    CommandParameter="{Binding SelectedItems, ElementName=dataGrid}">
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>

有人可以告诉我最好的方法是什么?

提前致谢,
赞布罗塔.

解决方法:

您当前的绑定指向DataGridRowItem.UpdateSearchParametersCommand.您需要将其更改为指向DataGrid.DataContext.UpdateSearchParametersCommand

<sdk:DataGrid x:Name=dataGrid>
    <sdk:DataGridTemplateColumn>
        <sdk:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button Width="15" Height="15" Content=">" 
                        Command="{Binding DataContext.UpdateSearchParametersCommand, ElementName=dataGrid}" 
                        CommandParameter="{Binding SelectedItems, ElementName=dataGrid}">
            </DataTemplate>
        </sdk:DataGridTemplateColumn.CellTemplate>
    </sdk:DataGridTemplateColumn>
</sdk:DataGrid>

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...