我有什么:
1. XAML中的文本块
2.来自包含DateTime的数据库的查询?类型数据
我的所作所为:
1.我用DateTime声明了一个“myClass”类?参数名为“myDate”
我想要什么
1.在文本块中显示MyDate [我知道]
2.当“myDate”的值为null时,在文本块中显示一个字符串。 [我不知道,因为Get方法只能返回DateTime?键入值但不是字符串类型。]
答案 0 :(得分:5)
尝试将Binding与您的文本块一起使用,如下所示:
<TextBlock Text="{Binding myDate, TargetNullValue='Your null message'"/>
答案 1 :(得分:0)
声明一个字符串变量;如果myDate
不为null,则为其指定日期值 - 否则将其设置为默认值。例子:
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()
。
答案 2 :(得分:0)
您应该编写一个转换器,它将执行'is null'检查并返回信息字符串。
这将允许您使用标准数据绑定直接从XAML执行此操作,而无需在代码隐藏文件中添加任何其他代码。