【问题标题】:Checkbox binding to boolean twoway复选框绑定到布尔双向
【发布时间】:2012-03-11 17:39:42
【问题描述】:

我有一个“设置”类(在自己制作的子文件夹“etc”中(在 Visual Studio 中)),它有一个名为“boobackcolorred”的布尔属性(值 = TRUE,第一种形式将其设置为真)。现在我正在为我的设置制作一个 WPF 窗口,我想使用一个复选框,您可以在其中更改布尔值的值。我想以“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。

【问题讨论】:

  • 双向绑定是默认设置,因此您不必显式编码。
  • 你调用 OnPropertyChanged("boobackcolorred");在你的二传手?

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


【解决方案1】:

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

Binding to static property

【讨论】:

    【解决方案2】:

    使用 IValueConverter 接口。

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

    Tutorial for using ValueConverters in WPF

    【讨论】:

      猜你喜欢
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多