【问题标题】:Silverlight "conditional" binding to a datagrid column?Silverlight“条件”绑定到数据网格列?
【发布时间】:2011-07-28 21:27:43
【问题描述】:

我正在以编程方式为我的数据网格设置我的数据网格列,然后将网格绑定到一个可观察的集合。

我的一些列绑定到 DateTime 属性,但是,如果它们在数据库中为空值,则由于 DateTime 是不可为空的类型,它会将 DateTime 属性设置为最小值。

我对上述列的绑定如下:

DataGridTextColumn scanned = new DataGridTextColumn();
scanned.Header = "Scanned";
scanned.Binding = new Binding("DateScanned");
dataGrid.Columns.Add(scanned);

“DateScanned”是日期时间属性。 现在,而不是那些在网格中显示为“1/1/0001”的值,如果它们被空白,我更喜欢它。 这是我的问题。

我能否以某种方式将此绑定设置为有条件的,如果属性值为“1/1/0001”,则不显示任何内容?

【问题讨论】:

    标签: c# silverlight data-binding


    【解决方案1】:

    使用value converter 将特定的值转换为空白或任何你想要的。

    【讨论】:

    • 哈哈,谢谢,我正在写我的发现,比你晚了 26 秒才发布。我最终按照你的建议做了,所以我会把你的标记为答案。再次感谢。
    【解决方案2】:

    我认为您应该使用 Converter 来从您的 ModelView 转换为以您想要的格式查看数据。看看这个简单的教程:

    Converter in Silverlight

    问候。

    【讨论】:

      【解决方案3】:

      没关系,了解绑定转换器。写了一个“MinDateConverter”来检查它是否是最小日期时间。如果是,则返回空白,否则返回日期时间。

      public class MinDateConverter : IValueConverter
      {
          public MinDateConverter()
          {
          }
      
          public virtual object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
          {
              DateTime dt = (DateTime)value;
              if (dt.Equals(DateTime.MinValue))
                  return string.Empty;
              else
                  return dt.ToShortDateString();
          }
      
          public virtual object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
          {
              return value;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2012-06-13
        • 2012-01-20
        • 2011-10-29
        • 1970-01-01
        • 2011-05-11
        • 2014-04-14
        • 1970-01-01
        • 2011-03-29
        • 2011-02-03
        相关资源
        最近更新 更多