如何从View Model访问CommandParameter值

时间:2013-02-26 11:34:23

标签: c# wpf xaml mvvm telerik

我在视图中有一个按钮:

<Button Grid.Row="0" Grid.Column="1" Content="Export to CSV "  
        HorizontalAlignment="Right" VerticalAlignment="Center"
        Margin="2,2,20,2" Style="{StaticResource ExportButton}"
        Command="{Binding ExportToExcelCommand}"
        CommandParameter="{TelerikGrid}"
/>

现在我的ExportCommand中的ViewModel为:

private RelayCommand _exportToExcelCommand;
public ICommand ExportToExcelCommand
{
    get
    {
        if (_exportToExcelCommand == default(RelayCommand))
        {
            _exportToExcelCommand = new RelayCommand(ExportToExcel, CanExport);
        }
        return _exportToExcelCommand;
    }
}

private void ExportToExcel(Object param)
{
    try
    {
        //ToDo: Update With Command Parameters
        RadGridView gdv = new RadGridView();

        using (Stream stream = dialog.OpenFile())
        {
            gdv.Export(Columns);
        }
    }
    catch (FaultException ex)
    {
        var faultMessage = ex.Reason.GetMatchingTranslation().Text + "/n" + ex.StackTrace;
    }
}

现在我正在创建一个RadGridView的新实例:

RadGridView gdv = new RadGridView();

但我希望从XAML中传递为gdv的值中指定CommandParameter

1 个答案:

答案 0 :(得分:3)

RadGridView gdv = (RadGridView)param;

param是您发送的对象,因此只需将其转换为原点。