WPF-DataGrid上的FormatString无效

时间:2013-09-03 07:19:34

标签: c# wpf datagrid

我的WPF-DataGrid中的FormatString存在一个小问题。我使用DataGridTextColumn作为列。我的DataSource是IList<IDictionary<string, string>>

我的问题是,如果我设置StringFormat,它对列没有任何影响。

这是我的绑定代码:

cColumn.Binding = new Binding("[" + Config.InternName.ToLower() + "]");

这就是我设置FormatString的方式:

    #region [Date-Time Formating]
    if (Config.DateTimeFormat.Trim() != "")
    {
        string cDateTimeFormat = Config.DateTimeFormat.Trim();
        (cColumn.Binding as Binding).StringFormat = cDateTimeFormat;
    }
    #endregion

我已经尝试了很多DateTime-StringFomrats,但没有解决我的问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的解决方案: 我不能简单地使用FormatString,而不绑定日期时间。所以我写了一个IValueconverter:

public class StringDateTimeValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        DateTime cOutDateTime = DateTime.Now;

        if (DateTime.TryParse(value.ToString(), out cOutDateTime))
        {
            return cOutDateTime;
        }
        else
        {
            return DependencyProperty.UnsetValue;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value.ToString();
    }
}