我在WPF C#项目中有一个CheckBoxes网格。每个复选框的Command
属性绑定到一个CheckBoxChangedCommand
我WView.xaml文件,像这样:在WPF中调用Command时从CheckBox获取Checked属性
<CheckBox Grid.Row="0" IsChecked="true" x:Name ="CheckBox0"
Command="{Binding CheckBoxChangedCommand}" />
<CheckBox Grid.Row="1" IsChecked="true" x:Name="CheckBox1"
Command="{Binding CheckBoxChangedCommand}" />
每次被选中或未选中,我叫CheckBoxChanged
复选框之一。我将如何去显示一个弹出窗口,显示CheckBox的网格中的行号和CheckBox的名称(例如“CheckBox0”),以及2. Checked值(true/false)复选框?
我CheckBoxChangedCommand,在WViewModel.cs文件,如下所示:
public ICommand CheckBoxChangedCommand
{
get
{
return new RelayCommand(param =>
{
MessageBox.Show("CheckBoxChanged!");
});
}
}
我如何可以访问IsChecked
财产,引发了CheckBoxChanged
内CheckBoxChanged
CheckBox的行号?我怎样才能将我的视图中的数据传递给ViewModel?
是否有一个原因,你为什么不绑定IsCheck编辑属性到你的ViewModel,像这样:'IsChecked =“{Binding IsChecked}”;这将有利于您在用户更改复选框的状态时通知您并且您同时知道其值。 (如果每个复选框有一个ViewModel,效果最好。) – 2012-06-15 18:18:37
我试着为我的3个CheckBoxes(1到X)中的每一个制作单独的'IsCheckedX'处理程序。如何获得IsCheckedX'内的CheckBox的当前状态?我尝试使用'IsChecked =“{Binding IsChecked2}”',其中'IsChecked2'是一个无效函数,只显示一个MessageBox,表示hello,但是当我检查并取消选中CheckBox 2时,此函数从不会被调用。 – mewsicalcat
您无法绑定到一个方法; 'IsChecked2'必须是公共财产,例如'public bool IsChecked2 {get {...} set {...}}'。 – 2012-06-20 04:56:28