WPF開発ノウハウ集

Binding(ICommand)の実装

ICommandの使用例

	<ContextMenuService.ContextMenu>
		<ContextMenu Name="contextMenu">
			<MenuItem Name="AddMenu" Header="Add" Command="{Binding Path=AddCommand}"/>
		</ContextMenu>
	</ContextMenuService.ContextMenu>

コンストラクタの中等に実装して画面の要素をViewModelに渡す引数を登録する ViewModelに引数を渡す必要がない場合は省略可

	this.AddMenu.CommandParameter = this.dataGrid;
	public ICommand AddCommand => new RelayCommand<DataGrid>( this.AddProcess, this.IsAddExecutable );
	private void AddProcess( DataGrid dataGrid )
	{
		〜ここに処理を実装〜
	}
	private bool IsAddExecutable( DataGrid dataGrid )
	{
		〜ここに処理の実行可否を返す処理を実装〜
		(falseを返した場合Buttonコントロール、ContextMenuは非活性として表示される)
	}