将ToggleButton绑定到bool

时间:2014-02-24 22:45:05

标签: c# wpf boolean togglebutton

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

为此我在我的View中看到了这个ToggleButton:

<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?谢谢。

1 个答案:

答案 0 :(得分:8)

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

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

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