我有WP7工具包,正在使用切换开关。
此时它显示为开或关。
我知道您可以使用内容模板对其进行自定义,并且随附的示例代码显示了这一点,但是我无法找到一种开启/关闭其他方式的方法。
我想显示是和否。
答案 0 :(得分:3)
我创建了自己的值转换器,它与我的视图模型上的相同布尔属性绑定为IsChecked。所以在视图上它看起来像:
<toolkit:ToggleSwtich IsChecked="{Binding Completed}" Content="{Binding Completed, Converter={StaticResource YesNoConverter}" />
答案 1 :(得分:2)
Hum因为“On”和“Off”字符串来自源代码中私有方法中的转换器集,我没有看到很多替代方法:http://silverlight.codeplex.com/SourceControl/changeset/view/55144#1325068
更改源代码以使其更灵活?
答案 2 :(得分:2)
有一种更简单的方法,将内容设置为否,然后为每个切换创建一个事件处理程序,使其显示是,然后是否:
private void ToggleSwitch_Checked(object sender, RoutedEventArgs e)
{
togButton.Content = "Yes";
}
private void ToggleSwitch_Unchecked(object sender, RoutedEventArgs e)
{
togButton.Content = "No";
}
答案 3 :(得分:2)
我知道这个问题很老了,但我认为这个答案可能很有用,因为不需要重新编译控件的代码。
我们可以将Content
绑定到IsChecked
属性,并使用返回我们自定义字符串的Converter
。
这就是我为我的项目所做的:
<toolkit:ToggleSwitch SwitchForeground="{StaticResource PhoneAccentBrush}"
Grid.Row="3" Grid.Column="1"
Header="{Binding Path=LocalizedResources.MyLabel, Source={StaticResource LocalizedStrings}}"
Content="{Binding IsChecked, Converter={StaticResource SwitchOnOffConverter}, RelativeSource={RelativeSource Self}}"/>
SwitchOnOffConverter
就是这个:
public class SwitchOnOffConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((bool) value) ? AppResources.YesText : AppResources.NoText;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}