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