如何返回不同类型的参数?

时间:2012-05-12 15:01:47

标签: c# silverlight windows-phone-7 xaml

我有什么:
1. XAML中的文本块
2.来自包含DateTime的数据库的查询?类型数据
我的所作所为:
1.我用DateTime声明了一个“myClass”类?参数名为“myDate”

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

3 个答案:

答案 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执行此操作,而无需在代码隐藏文件中添加任何其他代码。