我有一个简单的用户控件(DoubleRadioControl2),由2个单选按钮组成。我对这个UC一德普道具:(布尔?)IsOuiChecked:WPF:MvvmLight,Usercontrol,Binding
- 真实的 - '是' 无线电检查
- 假的 - '不' 无线电检查
- 空 - 无论 收音机选中
很简单。
private static readonly DependencyProperty IsOuiCheckedProperty = DependencyProperty.Register("IsOuiChecked", typeof(bool?), typeof(DoubleRadioControl2), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public bool? IsOuiChecked
{
get
{
return (bool)GetValue(IsOuiCheckedProperty);
}
set
{
SetValue(IsOuiCheckedProperty, value);
if (value == null)
{
RadioYes.IsChecked = false;
RadioNo.IsChecked = false;
}
else
{
RadioYes.IsChecked = (bool) value;
RadioNo.IsChecked = !(bool) value;
}
}
}
而且部份之间的逻辑2个收音机:
private void OptDecompteConfnOui_Click(object sender, RoutedEventArgs e)
{
IsOuiChecked = true;
}
private void OptDecompteConfnNon_Click(object sender, RoutedEventArgs e)
{
IsOuiChecked = false;
}
当我今天UC绑定到我的视图模型,如果更新,当我在我的收音机单击绑定道具。但是,当我在我的视图模型的代码中设置值时,它不会更新我的无线电。
在我的视图模型:
private bool? _isDRB2OuiChecked;
public bool? IsDRB2OuiChecked
{
get
{
return _isDRB2OuiChecked;
}
set
{
if (_isDRB2OuiChecked == value)
{
return;
}
_isDRB2OuiChecked = value;
RaisePropertyChanged(() => IsDRB2OuiChecked);
}
}
双向绑定不工作。
除了下面的答案,如果你想保持绑定的依赖项属性不变,你也应该使用'SetCurrentValue',而不是'SetValue'。 –