c# - WPF 将复选框绑定(bind)到 bool?

标签 c# wpf xaml mvvm checkbox

我有一个 WPF 复选框绑定(bind)到 ViewModel 可为 null 的 bool 属性。我在构造函数中将此属性设置为 false 或 true,以避免 Interminent 状态,但无论我做什么,复选框的初始状态都保持灰色。绑定(bind)工作得很好,因为一旦我通过单击 UI 上的复选框更改状态,我就会获得控件值 (true/false)。有什么想法吗?

XAML:

<CheckBox Margin="0,4,0,3"
          VerticalAlignment="Center"
          Content="Mutual"
          IsChecked="{Binding MutualChb}" />

View 模型:

public ContstrutorViewModel()
{
    MutualChb = true;
}

private bool? _mutualChb;
public bool? MutualChb
{
    get { return _mutualChb; }
    set
    { 
        _mutualChb = value; 
        _mutualChb = ( _mutualChb != null ) ? value : false;
        OnPropertyChanged("MutualChb");
    }
}

最佳答案

这是因为它最初为空。

private bool? _mutualChb;
public bool? MutualChb
{
    get { return (_mutualChb != null ) ? _mutualChb : false; }
    set
    { 
        _mutualChb = value;               
        OnPropertyChanged("MutualChb"); 
    }
}

关于c# - WPF 将复选框绑定(bind)到 bool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383536/

相关文章:

c# - 如何创建可以在应用程序中的任何位置设置/获取的应用程序范围变量? (WPF/MVVM)

wpf - 控件的 "visible area"?

c# - 更改按钮模板内的图像源

c# - 单击 DataTemplate 中的项目时禁用 ListView 的 ItemClick (WP 8.1)

c# - windows phone子控怎么清除背景

c# - 为什么不是 System.Void?

c# - Xamarin Forms iOS 应用程序检测到 "Return"已按下

c# - 返回带有查询字符串的 View

Java 集合的 C#/.NET 等价物。<T>emptyList()?

c# - XAML 多重绑定(bind) StringFormat