0

私が持っているもの:
1。XAMLのテキストブロック
2. DateTimeを含むデータベースからのクエリ?データを入力します。

私がすること:
1。DateTimeでクラス「myClass」を宣言しますか?「myDate」という名前のパラメーター

1.
テキストブロックにMyDateを表示する[わかっている]
2。「myDate」の値がnullの場合、テキストブロックに文字列を表示する。[GetメソッドはDateTimeしか返すことができないので、わかりませんか?型の値ですが、文字列型ではありません。]

4

3 に答える 3

5

次のように、テキストブロックでBindingを使用してみてください。

<TextBlock Text="{Binding myDate, TargetNullValue='Your null message'"/>
于 2012-05-12T15:10:31.237 に答える
0

文字列変数を宣言します。nullでない場合myDateは、日付の値を割り当てます。それ以外の場合は、デフォルトに設定します。例:

string stringToShow = null;
if(myDate.HasValue)
{
  stringToShow = myDate.Value.ToString();
}
else
{
  stringToShow = "other string";
}

または、より簡潔に三元で

string stringToShow = myDate.HasValue ? myDate.Value.ToString() : "other string";

次にstringToShow、の代わりにテキストブロックに表示しmyDateます。最後に、これを拡張メソッドでラップして、呼び出しを非常に簡単にすることができます。

public static string ToSpecialString(this DateTime? date)
{
  return myDate.HasValue ? myDate.Value.ToString() : "other string";
}

myDate.ToSpecialString()次に、フロントエンドで呼び出すことができます。

于 2012-05-12T15:05:10.023 に答える
0

'isnull'チェックを実行して情報文字列を返すコンバーターを作成する必要があります。

これにより、分離コードファイルに追加のコードを追加することなく、標準のデータバインディングを使用してXAMLから直接実行できます。

于 2012-05-12T15:05:11.903 に答える