【问题标题】:Bind ToggleButton to a bool将 ToggleButton 绑定到布尔值
【发布时间】:2014-03-26 21:10:43
【问题描述】:

我正在尝试实现一个切换按钮,允许用户在线性轴或对数轴之间进行选择。

为此,我在我的视图中有这个切换按钮:

<ToggleButton Width="40" Height="20" Margin="2" Grid.Row="1" Content="LogX" VerticalAlignment="Center" IsChecked="{Binding LogXChecked, Mode=TwoWay}"/>

在我的 ViewModel 中:

private bool _isLogXChecked;
public bool IsLogXChecked
{
    get
    {
        return _isLogXChecked;
    }
    set
    {
        _isLogXChecked = value;
        RaisePropertyChanged("IsLogXChecked");
        LogX();
    }
}

但是使用这个实现我无法让它工作,当用户按下 ToggleButton 时 IsLogXChecked 属性不会更新,并且我的方法 LogX() 不会触发。

问题可能出在哪里?或者我应该如何将 ToggleButton 绑定到 bool?谢谢。

【问题讨论】:

    标签: c# wpf boolean togglebutton


    【解决方案1】:

    您的 XAML 绑定到 LogXChecked,但您的 ViewModel 将其定义为 IsLogXChecked。现在,由于属性名称与绑定规范不匹配,绑定已损坏。

    您可以在任一侧修复此问题 - 例如,通过以下方式在 Xaml 中修复此问题:

     <ToggleButton Width="40" Height="20" Margin="2" 
        Grid.Row="1" Content="LogX" VerticalAlignment="Center" 
        IsChecked="{Binding IsLogXChecked, Mode=TwoWay}" />
    

    【讨论】:

    • 天哪,我应该删除这个问题吗?非常感谢里德。
    • @Sturm 可能不是——这是一个很常见的现实问题;)
    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 2011-01-27
    • 2010-12-23
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多