我试图在Wp7应用程序中使用带有MVVM Light的ToggleSwitch.
在视图中我有:
<toolkit:ToggleSwitch x:Name="toggleAccuracy"
Content="{Binding AccuracyText, Mode=TwoWay}"
IsChecked="{Binding AccuracyHigh, Mode=TwoWay}"
IsEnabled="True"
Header="Accuracy"
Margin="8,0"
Height="140"
VerticalAlignment="Top" >
Run Code Online (Sandbox Code Playgroud)
ViewModel包含:
private bool _AccuracyHigh = true;
public bool AccuracyHigh
{
get
{
return _AccuracyHigh;
}
set
{
_AccuracyHigh = value;
}
}
private string _AccuracyText = "High";
public string AccuracyText
{
get
{
return _AccuracyText;
}
set
{
_AccuracyText = value;
}
}
Run Code Online (Sandbox Code Playgroud)
AccuracyText和AccuracyHigh fire获得适当的值.
我的困难是试图陷入"状态改变"的事件; 选中和未选中.如果我用以下内容绑定它们:Checked ="{Binding Path = AccuracyChanged}"我收到运行时错误,告诉我标记错误.
我也尝试了一个触发器:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding AccuracyChanged}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:ToggleSwitch>
Run Code Online (Sandbox Code Playgroud)
我可以使用RadioButton,它可以很好地工作
<RadioButton …Run Code Online (Sandbox Code Playgroud)