【发布时间】:2012-05-13 09:24:44
【问题描述】:
我使用了 DelegateCommand,我想用 Command 传递 UserControl。
#region OpenViewCommand
private DelegateCommand<UserControl> _openViewCommand;
public ICommand OpenViewCommand
{
get
{
if (_openViewCommand == null)
_openViewCommand = new DelegateCommand<UserControl>(new Action<UserControl>(OpenView));
return _openViewCommand;
}
}
public void OpenView(UserControl ViewName)
{
UserControl ctrl = (UserControl)ViewName;
JIMS.Controls.Message.Show(ViewName.ToString());
}
#endregion
XAML 中的命令
<Button Name="btnStockGroups" Command="{Binding OpenViewCommand}" CommandParameter="JIMS.View.Stock.StockGroups">stock group</Button>
【问题讨论】:
-
为什么需要访问 ViewModel 中的控件?一般的 MVVM 方法是将控件绑定到 ViewModel 并从绑定的属性中读取数据。
-
OpenView 命令是否旨在使特定类型的 UserControl 被实例化并显示给用户?