复选框绑定到布尔双向

时间:2012-02-21 11:50:47

标签: c# wpf c#-4.0 binding checkbox

我有一个“设置”类(在自制的子文件夹“etc”中(在Visual Studio中))它有一个名为“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"

还尝试绑定复选框所在网格的datacontext,但没有运气。

我知道这可能很难。但是,我们将非常感谢答案。

PS:它应该是双向绑定的,所以如果未选中,则静态布尔值变为false。

2 个答案:

答案 0 :(得分:2)

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

Binding to static property

答案 1 :(得分:0)

使用IValueConverter接口。

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

Tutorial for using ValueConverters in WPF