2014-01-15 20 views
0

我有一个GridView,其中某些元素绑定到了我的对象。在那里我工作的价值是这样的:如果符合条件,则在XAML GridViewColumn中隐藏一些值

<GridViewColumn x:Name="DataGridLastEdit" Header="Last Edit" Width="150px" DisplayMemberBinding="{Binding lastEdit}" /> 

lastEditDateTime类型,但对于某些元素的空的,它显示1/1/0001 12:00:00 AM(它可以改变基于在计算机时间格式设置),造成一个非常丑陋的效果。

我只是想隐藏它没有有效日期的元素,但我对XAML很新,但我不能那样做。我读过关于使用转换器,但我总是写一些错误,甚至无法尝试,如果它的工作,我该怎么做?

+1

是的,你应该使用绑定转换器。 [Here](http://msdn.microsoft.com/zh-cn/library/system.windows.data.binding.converter.aspx)就是一个例子。 – Clemens

回答

1

使用ValueConverter

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(); 
    } 
} 

创建在控制的资源(转化为在转换器定义alias for the namespace

<conv:EmptyDateCoverter x:Key="EmptyDate" /> 

转换器,例如资源,然后应用结合这样:

<GridViewColumn x:Name="DataGridLastEdit" Header="Last Edit" Width="150px" DisplayMemberBinding="{Binding lastEdit, Converter={StaticResource EmptyDate}}" /> 
+0

谢谢,它完美无瑕! :) – HypeZ

+0

@HypeZ高兴地帮助 – Alberto

+0

我知道这不是正确的方式来问这个,但是,你有什么想法如何解决这个问题? Grazie mille! :) http://stackoverflow.com/questions/20971127/get-file-path-for-drag-n-drop-file-on-windows-explorer – HypeZ

相关问题