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

为此,我在我的 View 中有这个 ToggleButton:

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

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

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

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

最佳答案

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

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

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

10-08 00:32