将ToggleButton绑定到布尔值

5
我将尝试实现一个切换按钮,允许用户在线性轴和对数轴之间进行选择。
为此,在我的视图中有这个ToggleButton:
<ToggleButton Width="40" Height="20" Margin="2" Grid.Row="1" Content="LogX" VerticalAlignment="Center" IsChecked="{Binding LogXChecked, Mode=TwoWay}"/>

在我的视图模型中:
private bool _isLogXChecked;
public bool IsLogXChecked
{
    get
    {
        return _isLogXChecked;
    }
    set
    {
        _isLogXChecked = value;
        RaisePropertyChanged("IsLogXChecked");
        LogX();
    }
}

但是使用这种实现方式,我无法让它正常工作,当用户按下ToggleButton时,IsLogXChecked属性不会更新,并且我的LogX()方法也不会触发。
问题可能出在哪里?或者我应该如何绑定ToggleButton到一个布尔值?谢谢。
1个回答

9

您的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
1
@Sturm 可能不会 - 这是一个足够常见的现实世界问题 ;) - Reed Copsey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接