0

我有什么:
1. XAML 中的文本块
2. 来自包含 DateTime 的数据库的查询?类型数据。

我做什么:
1. 我用 DateTime 声明一个类“myClass”?名为“myDate”的参数

我想要什么
1. 在文本块中显示 MyDate [我知道]
2. 当“myDate”的值为空时,在文本块中显示一个字符串。【不知道,因为Get方法只能返回一个DateTime?类型值但不是字符串类型。]

4

3 回答 3

5

尝试将 Binding 与您的文本块一起使用,如下所示:

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

声明一个字符串变量;如果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

您应该编写一个转换器,它将执行“为空”检查并在返回信息字符串时返回。

这将允许您使用标准数据绑定直接从 XAML 执行此操作,而无需在代码隐藏文件中添加任何其他代码。

于 2012-05-12T15:05:11.903 回答