以下是我的xaml:
<CheckBox Name="CheckBoxNoFindings" Content="No Findings" Command="{Binding DisableRteCommand}" CommandParameter="{Binding Path=Content}" Grid.Row="1" Grid.Column="1" Margin="2,5,0,3" />
我想将IsChecked
和Content
属性值传递给命令参数并从VM访问它们。
VM代码:
private void DisableRte(object args)
{
if (null != args)
{
string rteName = args.ToString();
}
}
实际要求是,在check chekbox上,应禁用文本框,并将复选框的内容应用于texbox的文本。另一方面,取消选中复选框文本框应启用,文本应为空。
此方案的任何解决方案?
答案 0 :(得分:2)
public class CheckBoxExampleVm : ViewModelBase //assuming you have such a base class
{
private bool? _isChecked;
public bool? IsChecked
{
get { return _isChecked; }
set
{
_isChecked = value;
ModifyTextValue(value);
RaisePropertyChanged("IsChecked");
}
}
private string _textValue;
public string TextValue
{
get { return _textValue; }
set
{
_textValue = value;
RaisePropertyChanged("TextValue");
}
}
private void ModifyTextValue(bool? condition)
{
// do what ever you want with the text value
}
}
现在你只需要设置绑定,一切都很好。
另一种选择是使用转换器和元素绑定,这样您就不必在VM本身中实现它。
答案 1 :(得分:0)
如果其他建议不适合您,您可以将整个CheckBox
传递给VM。
<CheckBox ... CommandParameter="{Binding RelativeSource={RelativeSource Self}}"/>