我有一個簡單的用戶控件(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'。 –