WPF属性返回int null

时间:2012-06-21 12:05:31

标签: c# wpf properties null int

我的viewmodel中有一个int属性,它返回一个自定义类属性。我检查类引用是否为null,在这种情况下,我想向视图返回一些空值,以便不显示任何值。

代码是这样的:

public int percentage
{
get {
   if (customClass != null)
   {
      return customClass.getInt();
   }
   else
   {
      return 0;
   }
...
}

2 个答案:

答案 0 :(得分:4)

如果要返回“无值”结果,则应返回null。由于这不是int的有效值,因此您必须将属性的类型更改为int?

public int? Percentage
{
    get { return customClass == null ? null : customClass.getInt(); }
}

如果您之前没有看过语法,int?System.Nullable<int>的简写。

不要忘记,您还可以通过为绑定定义合适的Converter,将Percentage的值转换为您真正喜欢的任何内容。

答案 1 :(得分:1)

int是值类型,因此不能为null。相反,您可以返回int?(这是Nullable<int>的简写),可以为null,或者您可以指定一些特定的int值,例如0customClass == null。这当然取决于您的要求。

public int? Percentage {
    get {
       if (customClass != null)
          return customClass.getInt();
       else
          return null;
    }
}

调用Percentage的任何内容都需要检查Percentage.HasValue以查看它是否为空,并使用Percentage.Value提取实际的整数,如果Percentage.HasValue将会有效是true