所以当我试图让我的代码的不同部分工作时,我想通了。
我原来的单选按钮看起来像这样。
<!--Unit Selector-->
<ribbon:RibbonGroup x:Name="Unit_Selection" Header="Units">
<StackPanel DataContext="{StaticResource Settings}">
<!--Metric-->
<RadioButton GroupName="UnitsSelector" Content="mm" x:Name="Metric" IsChecked="{Binding Path=Default.Units, Mode=TwoWay, Converter={StaticResource enumBooleanConverter},
ConverterParameter=mm}" />
<!--Imperial-->
<RadioButton GroupName="UnitsSelector" Content="inches" x:Name="Imperial" IsChecked="{Binding Path=Default.Units, Mode=TwoWay, Converter={StaticResource enumBooleanConverter},
ConverterParameter=inches}" />
</StackPanel>
</ribbon:RibbonGroup>
它将绑定定向到用户设置枚举。
我将绑定更改为属性。获取 xaml 代码
<ribbon:RibbonGroup x:Name="Unit_Selection" Header="Units">
<StackPanel>
<RadioButton IsChecked="{Binding Path=UnitProperty, Converter={StaticResource enumBooleanConverter}, ConverterParameter=mm}">mm</RadioButton>
<RadioButton IsChecked="{Binding Path=UnitProperty, Converter={StaticResource enumBooleanConverter}, ConverterParameter=inches}">inches</RadioButton>
</StackPanel>
</ribbon:RibbonGroup>
...和财产
public Unit UnitProperty
{
get
{
return Properties.Settings.Default.Units;
}
set
{
if (Properties.Settings.Default.Units != value)
{
Properties.Settings.Default.Units = value;
NotifyPropertyChanged("UnitProperty");
NotifyPropertyChanged(String.Empty);
}
}
}
我必须添加 NotifyPropertyChange(String.Empty); 让它更新我的其他属性。
我还发现我需要将 INotifyPropertyChanged 作为基类添加到我的通知类中。
现在,当用户在毫米和英寸之间切换时,我必须完成并添加处理。