私はDelegateCommandを使用していて、私はCommandでUserControlを渡したいと思います。 XAMLCommandParameterでUserControlを渡す方法は?
<Button Name="btnStockGroups" Command="{Binding OpenViewCommand}" CommandParameter="JIMS.View.Stock.StockGroups">stock group</Button>
私はDelegateCommandを使用していて、私はCommandでUserControlを渡したいと思います。 XAMLCommandParameterでUserControlを渡す方法は?
<Button Name="btnStockGroups" Command="{Binding OpenViewCommand}" CommandParameter="JIMS.View.Stock.StockGroups">stock group</Button>
で
#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
コマンドあなたは、ユーザーコントロールにX与える場合:名前(例えば "MYVIEWを")、あなたはこのような何かを行うことができるはず:
<Button Name="btnStockGroups"
Command="{Binding OpenViewCommand}"
CommandParameter="{Binding ElementName=MyView}">
その動作していません...私はviemodelに入ることができません –
要素はウィンドウ内にありません..そのUserControlファイル –
どのように要素の名前を付けずに行うことができますか? –
なぜViewModelのコントロールにアクセスする必要がありますか?一般的なMVVM appraochは、ViewModelにコントロールをバインドし、それがバインドされているプロパティからデータを読み込むことです。 –
OpenViewコマンドは、特定のタイプのUserControlをインスタンス化してユーザーに表示させることを目的としていますか? – Andrew