复选框绑定到布尔双向

本文关键字:布尔双 绑定 复选框 | 更新日期: 2023-09-27 18:25:29

我得到了一个"settings"类(在Visual studio中的一个自制子文件夹"etc"中),它有一个名为"boobackcolorred"的布尔属性(第一种形式的值为TRUE,它将其设置为TRUE)。现在我正在为我的设置创建一个WPF窗口,我想使用一个复选框,在那里你可以更改boalean的值。我想用"XAML"的方式来做这件事。(我可以通过检查和取消检查事件来完成,但我不想那样做。)

settings.cs:(在我在VS中创建的"etc"文件夹中)

  class settings
    {
        public static Boolean boobackcolorred{ get; set; }
        ... // some extra code that does nothing with this, some xml reading and saving but doesn t matter for this issue.
    }

现在我正试图用这个xaml复选框来做这件事

 <CheckBox Content="Red Background?" Name="chbbackgroundred" IsChecked="{Binding etc.settings.boobackcolorred,Mode=TwoWay}" ></CheckBox>

OFC这不起作用我试了很多方法让它起作用。试图包括这样的东西:

xmlns:settings="clr-namespace:etc.myapp.settings"

还尝试绑定复选框所在的网格的数据上下文,但没有成功。

我知道这不难。然而,我们将非常感谢您的回答。

PS:它应该是双向绑定的,所以如果不选中,静态布尔值就会变成false。

复选框绑定到布尔双向

问题是它是一个静态属性。答案中可能的变通方法:

绑定到静态属性

使用IValueConverter接口。

<CheckBox IsChecked="{Binding Path=MyProperty, Converter={StaticResource ChbCheckedConverter}}"/>

在WPF 中使用ValueConverter的教程