基本は xaml で CommandParameter属性 を指定することで引数を渡せます。 以下ではいくつかの サンプルコード を記載しました。
目次
- 固定値 を 渡す 例
- 要素 を 渡す 例
- コントロールを渡す例
- Windowを渡す例
- 要素 の プロパティ を 渡す 例
固定値 を 渡す 例
CommandParameter="固定値" を指定します。 ラジオボタンくらいしか使い道が思いつきません…。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | < Window x:Class = "WpfApplication.MainView" xmlns:vm = "clr-namespace:WpfApplication.ViewModels" Title = "MainWindow" Name = "window" > < Window.DataContext > < vm:MainViewModel /> </ Window.DataContext > < Grid > < RadioButton Content = "春" Command = "SelectSeason" CommandParameter = "1" /> < RadioButton Content = "夏" Command = "SelectSeason" CommandParameter = "2" /> < RadioButton Content = "秋" Command = "SelectSeason" CommandParameter = "3" /> < RadioButton Content = "冬" Command = "SelectSeason" CommandParameter = "4" /> </ Grid > </ Window > |
要素 を 渡す 例
渡したい要素に Name属性 を設定し、CommandParameter="{Binding ElementName=要素名}" を指定します。 Name属性 さえ指定していれば良いので、 Control でも Window でも渡せてしまいます。
TextBox コントロール を引数に渡す 例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < Window x:Class = "WpfApplication.MainView" xmlns:vm = "clr-namespace:WpfApplication.ViewModels" Title = "MainWindow" Name = "window" > < Window.DataContext > < vm:MainViewModel /> </ Window.DataContext > < Grid > < TextBox Text = "サンプル" Name = "textbox" /> < Button Content = "閉じる" Command = "Close" CommandParameter = "{Binding ElementName=textbox}" /> </ Grid > </ Window > |
Window を引数に渡す 例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | < Window x:Class = "WpfApplication.MainView" xmlns:vm = "clr-namespace:WpfApplication.ViewModels" Title = "MainWindow" Name = "window" > < Window.DataContext > < vm:MainViewModel /> </ Window.DataContext > < Grid > < TextBox Text = "サンプル" Name = "textbox" /> < Button Content = "閉じる" Command = "Close" CommandParameter = "{Binding ElementName=window}" /> <!-- CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}} --> </ Grid > </ Window > |
要素 の プロパティ を 渡す 例
渡したい要素に Name属性 を設定し、CommandParameter="{Binding ElementName=要素名 Path=プロパティ名}" を指定します。
TextBox の Textプロパティ を引数に渡す 例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < Window x:Class = "WpfApplication.MainView" xmlns:vm = "clr-namespace:WpfApplication.ViewModels" Title = "MainWindow" Name = "window" > < Window.DataContext > < vm:MainViewModel /> </ Window.DataContext > < Grid > < TextBox Text = "サンプル" Name = "textbox" /> < Button Content = "閉じる" Command = "Close" CommandParameter = "{Binding ElementName=textbox Path=Text}" /> </ Grid > </ Window > |
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!