2011-07-28 60 views
0

我正在編程設置我的datagrid的datagrid列,然後將網格綁定到可觀察集合。Silverlight的「條件」綁定到datagrid列?

我的一些列綁定到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」,什麼都不顯示?

回答

1

使用value converter可將特定值轉換爲空白或其他任何您想要的值。

+0

哈哈,thx,我正在編寫我的研究結果,並在26秒後發佈。我最終做了你所建議的事情,所以我會將你的標記作爲答案。 Thx再次。 –

+0

謝謝你:-) –

0

沒關係,瞭解了綁定轉換器。寫了一個「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; 
    } 
} 
1

我認爲你應該使用轉換器爲了從你的ModelView轉換到以你想要的格式查看數據。對此簡明教程一看:

Converter in Silverlight

問候。