在WPF應用程序中,我在數據網格中顯示數據。 在這個數據網格中有一些DateTime值。在WPF數據網格中格式化可空數據時間
其中DateTime沒有設置,它顯示01/01/0001,沒關係,因爲DateTime不可爲空。
在這種情況下,我想顯示「 - 」。
我想我需要使用一個轉換器。
我嘗試這樣:
使用系統; using System.Collections.Generic;使用System.Linq的 ; using System.Text; using System.Threading.Tasks;使用System.Globalization的 ; using System.Windows.Data;
namespace Phoenix_CRM
{
public class Converter
{
}
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return "--/--/----";
DateTime returnVal;
if (DateTime.TryParse(value.ToString(), out returnVal))
{
if (returnVal != DateTime.MinValue)
return returnVal;
else
return "--/--/----";
}
else
return "--/--/----";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return DateTime.MinValue;
DateTime val;
if (value.ToString() == "--/--/----")
return DateTime.MinValue;
if (DateTime.TryParse(value.ToString(), out val))
return val;
else
return DateTime.MinValue;
}
}
}
我說這對我的XAML:
xmlns:converter="clr-namespace:myNameSpace"
後:
<DataGrid Grid.Column="0" Grid.Row="2">
<DataGrid.Columns>
<DataGridTextColumn Binding="{ Binding Path= dDate,StringFormat={}{0:dd/MM/yyyy HH:mm},Converter={converter:Converter.DateConverter}}" Header=" Date " Width="Auto" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
我的代碼不會因爲
Converter={converter:Converter.DateConverter}}
編譯
任何人都可以幫助我嗎?
謝謝:)代碼編譯!不過,我有一個帶有InnerException的XamlParseException:無法找到名爲「DateConverter」的資源 – 2013-05-02 08:25:39
@WalterFabioSimoni:嘗試將資源置於窗口或用戶控件的資源集合中,而不是數據網格。 – 2013-05-02 08:26:37
是的!沒關係:)非常感謝:) – 2013-05-02 08:38:56