我的视图模型中有一个 int 属性,它返回一个自定义类属性。我检查类引用是否为空,在这种情况下,我想向视图返回一些空值,以便不显示任何值。
代码是这样的:
public int percentage
{
get {
if (customClass != null)
{
return customClass.getInt();
}
else
{
return 0;
}
...
}
我的视图模型中有一个 int 属性,它返回一个自定义类属性。我检查类引用是否为空,在这种情况下,我想向视图返回一些空值,以便不显示任何值。
代码是这样的:
public int percentage
{
get {
if (customClass != null)
{
return customClass.getInt();
}
else
{
return 0;
}
...
}
如果要返回“无值”结果,则应返回null. 由于这不是 an 的有效值int,因此您必须将属性的类型更改为int?:
public int? Percentage
{
get { return customClass == null ? null : customClass.getInt(); }
}
如果您以前没有看过语法,int?它是 . 的简写System.Nullable<int>。
不要忘记,您还可以通过为绑定Percentage定义适当的值,从视图内部将值转换为您真正喜欢的任何内容。Converter
int是一个值类型,所以不能为空。相反,您可以返回int?(它是 的简写Nullable<int>),它可以为 null,或者您可以指定一些特定int的值,例如0适用于 when customClass == null。这当然取决于您的要求。
public int? Percentage {
get {
if (customClass != null)
return customClass.getInt();
else
return null;
}
}
任何调用Percentage都需要检查Percentage.HasValue它是否为空,并用于Percentage.Value提取实际的整数,如果Percentage.HasValue是,这将起作用true。