【发布时间】:2011-03-17 02:29:03
【问题描述】:
什么是 WCF RIA 命令?这甚至是正确的名字吗?
我有一个 silverlight 应用程序,我想在其中使用命令绑定来调用网络服务器上的方法;但是我不确定如何创建这样一个类和方法,以便它可以被 RIA 拾取并在 silverlight XAML 中使用;没有任何代码。
【问题讨论】:
什么是 WCF RIA 命令?这甚至是正确的名字吗?
我有一个 silverlight 应用程序,我想在其中使用命令绑定来调用网络服务器上的方法;但是我不确定如何创建这样一个类和方法,以便它可以被 RIA 拾取并在 silverlight XAML 中使用;没有任何代码。
【问题讨论】:
Silverlight(或 WPF)应用程序上下文中的“命令”是实现 ICommand 接口的类。
用于将 ViewModels 中的代码绑定到 Views 中的控件。
几乎所有体面的 MVVM 框架都包含它们(PRISM 有 DelegateCommand,MvvmLight 有 RelayCommand 等),但编写自己的框架并不难......
示例用法:
在 XAML 中:
<Button Command="{Binding GetCommand}" Content="Get" />
然后在 ViewModel 中(绑定到 View 的 DataContext)
public ICommand GetCommand
{
get
{
if (_getCommand == null) _getCommand = new RelayCommand(GetHandler, CanGetPredicate);
return _getCommand;
}
}
private void GetHandler()
{
// Do the work here - call into the server, or whatever.
}
private bool CanGetPredicate()
{
// work out if it is valid for this to be called or not
return (someRule == true); // or whatever
}
【讨论】: