■ VisualBasic+WPF+YAML #9:DataGridのイベント 2

VBからYMALファイルを読み込みたい。
前回記事:VisualBasic+WPF+YAML #8:DataGridのイベント



イベントのパラメータ

DataGridに配置したButtonのイベントを処理することはできた。
が、どの行のボタンが押されたかを知るにはどうするか?

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 件のコメント:

その他の記事