感谢以下代码的帮助:
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);
我无权提供整个代码段。
答案 0 :(得分:2)
RCommand<IEnumerable>
是实现ICommand
接口的具体类型,您可以将ICommand
属性设置为实现ICommand
接口的任何类型。
因此代码基本上创建了一个RCommand<IEnumerable>
并将AddNewRecord
属性设置为它。
RCommand<IEnumerable>
类反过来似乎接受在执行命令时调用的Action<IEnumerable>
和将从Predicate<IEnumerable>
方法返回的CanExecute
命令。