格式化绑定属性

时间:2014-07-04 08:42:31

标签: c# wpf xaml data-binding

我想将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代码出了什么问题?

1 个答案:

答案 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;作为我的转换器。