我想将Slider的Value
绑定到Label的Content
。滑块的值设置时间跨度。滑块的值是以分钟为单位的时间跨度(值5 = 5分钟)。
这是我对标签的XAML:
<Label
Content="{Binding Value, ElementName=sld_Timespan}"
ContentStringFormat="{}{0:HH:mm}"
/>
我可以绑定它们。值是正确的。但格式错误。
对于ContentStringFormat
,我尝试了不同的设置,例如在this (TextBlock in Silverlight)或this (TextBlock Multibinding)网站上。我还使用数据绑定对话框并将StringFormat设置为{0:G}(您可以从ComboBox中选择)或其他设置。
我只得到一个值&#34;格式化&#34;如同&#34; 1&#34;或&#34; 13.423523423&#34;。
我也试过TextBlock。同样的问题。
我的XAML代码出了什么问题?
答案 0 :(得分:0)
在克莱门斯的评论之后,我明白了什么是错的。我写了一个简单的转换器:
public class DoubleToTimespanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return TimeSpan.FromMinutes((double)value).ToString(@"hh\:mm\:ss");
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
并添加到我的XAML:
<UserControl.Resources>
<!--local is my local namespace-->
<local:DoubleToTimespanConverter x:Key="converter"/>
</UserControl.Resources>
我可以轻松设置&#34;转换器&#34;作为我的转换器。