我正在尝试实现一个切换按钮,允许用户在线性轴或对数轴之间进行选择。
为此,我在我的 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}" />