RelayCommand在某些​​计算机上不起作用

时间:2014-07-08 13:32:13

标签: c# wpf relaycommand

DataGrid我有一个像这样定义的列。

<DataGridTemplateColumn Width="Auto">
    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                APPROACH
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>

第一种方法

<Button Template="{StaticResource CloseTabButton}" Command="{Binding DataContext.DeleteRangeCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}"/>

第二种方法

<Button Template="{StaticResource CloseTabButton}" Command="{Binding ElementName=CurrentWindow, Path=DataContext.DeleteRangeCommand}" CommandParameter="{Binding}"/>

在ViewModel中:

public RelayCommand<Range> DeleteRangeCommand
{
    get { return _deleteRangeCommand ?? (_deleteRangeCommand = new RelayCommand<Range>((x) => ReportGroup.Ranges.Remove(x))); }
}

两种方法都应该相同。问题是,在某些计算机上 - 我猜这些没有Visual Studio安装,第二种方法不起作用。什么都没有发射,我试图附加远程调试器和命令不被触发。为什么这可能?

OfCourse CurrentWindowx:Name的Window,DataContext设置为ViewModel

0 个答案:

没有答案