这个ICommand属性如何工作?

时间:2018-03-01 16:52:13

标签: c# wpf icommand

感谢以下代码的帮助:

public static ICommand AddNewRecord { get; set; }

以上代码位于WPF应用程序的App.xaml.cs文件中。我不明白的是:如果我没有理解,接口就无法实例化。那么上面的属性是做什么的呢?

此处使用上述属性的代码(如果它是什么):

AddNewRecord = new RCommand<IEnumerable>(list =>
  {
    var elementType = list.GetType().GetGenericArguments()[0];

    // More code I can't disclose.

  }, list => list != null);

我无权提供整个代码段。

1 个答案:

答案 0 :(得分:2)

RCommand<IEnumerable>是实现ICommand接口的具体类型,您可以将ICommand属性设置为实现ICommand接口的任何类型。

因此代码基本上创建了一个RCommand<IEnumerable>并将AddNewRecord属性设置为它。

RCommand<IEnumerable>类反过来似乎接受在执行命令时调用的Action<IEnumerable>和将从Predicate<IEnumerable>方法返回的CanExecute命令。