我有一个GridView
,其中一些元素绑定到我的对象。我工作的价值是:
<GridViewColumn x:Name="DataGridLastEdit" Header="Last Edit" Width="150px" DisplayMemberBinding="{Binding lastEdit}" />
lastEdit
是DateTime
类型,但对于某些元素,它是空的并显示 1/1/0001 12:00:00 AM (它可以根据计算机时间格式设置),产生非常难看的效果。
我只想隐藏它没有有效日期的元素,但我对XAML很新,我不能这样做。我读到了有关使用转换器的信息,但我总是写一些错误,甚至无法尝试它是否有效,我怎么能这样做?
答案 0 :(得分:1)
public class EmptyDateCoverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(value is DateTime)
{
if((DateTime)value == DateTime.MinValue)
{
return "";
}
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
//We don't need convert back
throw new NotImplementedException();
}
}
为转换器创建资源,例如在控件的资源中(conv是定义转换器的alias for the namespace)
<conv:EmptyDateCoverter x:Key="EmptyDate" />
然后以这种方式应用绑定:
<GridViewColumn x:Name="DataGridLastEdit" Header="Last Edit" Width="150px" DisplayMemberBinding="{Binding lastEdit, Converter={StaticResource EmptyDate}}" />