我正在使用ViewModel设置显示器上的点数。有没有一种方法可以对此进行修改,以便当点的值为“ 0”或另一个不为空时,它会添加“ pts”,但是当其为“”时仍显示“”
string _points;
public string Points
{
get => _points;
set => SetProperty(ref _points, value);
}
答案 0 :(得分:1)
在返回_string
的{{1}}属性中,检查"0"
是否为Points
:
get => _points.Equals("0") ? "0 pts" : _points;
要整理一下,将其放入方法中
public string ReturnPoints() => _points.Equals("0") ? "0 pts" : _points;
然后在您的Points
属性中:
string _points;
public string Points
{
get => ReturnPoints();
set => SetProperty(ref _points, value);
}
答案 1 :(得分:1)
从您的问题中,您可以尝试一下。
使用string.IsNullOrEmpty
方法检查字符串是否为空,如果没有在末尾添加任何pt,否则返回""
。
string _points;
public string Points
{
get => !string.IsNullOrEmpty(_points) ? $"{_points} pts" : string.Empty;
set => SetProperty(ref _points, value);
}
答案 2 :(得分:1)
基于OP对我其他答案的答复。
public static Points _points { get; set; }
class Points
{
private int? i;
public static implicit operator Points(int value)
{
return new Points { i.Value = value };
}
public static implicit operator string(Points value)
{
if(Value.i.HasValue)
return value.i.Value.ToString();
return "";
}
public static implicit operator int(Points value)
{
return value.I.HasValue ?value.i.value : 0;
}
}
并使用新的Points结构:
_points += 2; // 2
string s = points; // "2"