2011-07-28 14 views
0

私はプログラムでデータグリッドのデータグリッド列を設定してから、観測可能なコレクションにグリッドをバインドしています。Silverlight "条件付き"データグリッド列へのバインド?

私の列のカップルは、DateTimeプロパティにバインドされていますが、データベースのNULL値の場合は、DateTimeがnull以外の型であるため、DateTimeプロパティをmin値に設定しています。私は結合

は、前述の列に対して、次のとおりです。日時プロパティであること

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

私は自分の所見を書いていて、26秒後に投稿しました。私はあなたが提案したことをやり遂げたので、私はあなたの答えを答えとしてマークします。再びThx。 –

+0

ありがとう:-) –

0

Nevermind、バインディングコンバーターについて知っています。 minDateConverterを作成して、それが最小の日付時刻であるかどうかを確認します。そうであれば空白を返し、そうでない場合はdatetimeを返します。

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を使うべきだと思います。

Converter in Silverlight

よろしく:この簡単なチュートリアルの表情を持っています。

関連する問題