我正在使用 .Net 4.0 并在视图中有一个 DataGrid。我已经实现了这个http://www.codeproject.com/Articles/42227/Automatic-WPF-Toolkit-DataGrid-Filtering来提供过滤。DataGrid 的 ItemsSource 是我的自定义对象的可观察集合。每行都有一个按钮,单击该按钮时,通过 CommandParameter 将选定的自定义对象传回。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding Path=DataContext.DeleteMyCustomObjectCommand,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" Width="20">
<Image Source="/MyThing;component/Images/delete.png" Height="16" Width="16"/>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
我希望能够使用此解决方案http://www.codeproject.com/Articles/42227/Automatic-WPF-Toolkit-DataGrid-Filtering?msg=3342202#xx3342202xx保存过滤条件,但其中一个调用需要参考到数据网格
QueryController queryController= DataGridExtensions.GetDataGridFilterQueryController(myGrid1);
当我使用 MVVM 时,我的 ViewModel 中没有对 DataGrid 的引用。我的命令执行代码(在 ViewModel 中)目前看起来像这样
public void DeleteMyCustomObject(object param)
{
MyCustomObject m = param as MyCustomObject;
.....Deletion commands go here
有没有一种方法可以在我的 Delete 按钮的 CommandParameter 上使用多重绑定从当前行传回自定义对象,以及对实际 DataGrid 的引用(或者有更好的解决方案)。
非常感谢
米克