复选框绑定到布尔双向
本文关键字:布尔双 绑定 复选框 | 更新日期: 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的教程