イベントのパラメータ
DataGridに配置したButtonのイベントを処理することはできた。
が、どの行のボタンが押されたかを知るにはどうするか?
ButtonのCommandParameter属性に渡す値を指定すれば良い。
例えば items の id を渡す場合は以下のように指定する。
■MainWindow.vb
イベントを処理するClickEventCommandクラスではExecuteメソッドの引数 parameter で、CommandParameterで指定した値を取得できる。
試しに parameterの値を表示するように変更してみる。
■ClickEventCommand.vb
パラメータを複数指定したい場合はどうするか?
MultiBindingってのがあるらしいが、どうやってもうまくいかない・・・
ので調査保留中。
が、どの行のボタンが押されたかを知るにはどうするか?
ButtonのCommandParameter属性に渡す値を指定すれば良い。
例えば items の id を渡す場合は以下のように指定する。
■MainWindow.vb
<Button Content="..." Command="{Binding DataContext.ClickEvent, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding id}" />
イベントを処理するClickEventCommandクラスではExecuteメソッドの引数 parameter で、CommandParameterで指定した値を取得できる。
試しに parameterの値を表示するように変更してみる。
■ClickEventCommand.vb
Public Sub Execute(parameter As Object) Implements ICommand.Execute MessageBox.Show(parameter) End Subボタンを押すと、押した行のid値がメッセージボックスで表示される。
パラメータを複数指定したい場合はどうするか?
MultiBindingってのがあるらしいが、どうやってもうまくいかない・・・
ので調査保留中。
次回記事:VisualBasic+WPF+YAML #10:DataGridのイベント 3
-- 以上 --
VisualBasic, WPF, DataGrid, YAML, MVVM
0 件のコメント:
コメントを投稿