4
我想在Wp7應用程序中使用ToggleSwitch和MVVM Light。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" >
視圖模型包含:
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;
}
}
AccuracyText和AccuracyHigh火災得到適當的值。
我的困難是試圖捕捉「狀態改變」事件;選中並取消選中。如果我將它們綁定爲如下形式: 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>
我可以用單選按鈕,其工作的很好
<RadioButton Content="Up"
x:Name="radioButton1"
GroupName="UpDown"
Width="119" />
<RadioButton IsChecked="{Binding UpDown, Mode=TwoWay}"
Content="Down"
x:Name="radioButton2"
GroupName="UpDown" />
public bool UpDown
{
get
{
bool ud = settings.UpDown.ToLower() == "u" ? true : false;
return ud;
}
set
{
settings.UpDown = value == true ? "U" : "D";
settings.Save();
}
}
但ToggleSwitch看起來更好(恕我直言)
知道的任何建議。
謝謝,解決了標記錯誤。 – Declan 2011-04-13 08:45:28