如果绑定值不是“”,我如何修改绑定以使其添加“ pts”?

时间:2018-09-02 07:35:00

标签: c#

我正在使用ViewModel设置显示器上的点数。有没有一种方法可以对此进行修改,以便当点的值为“ 0”或另一个不为空时,它会添加“ pts”,但是当其为“”时仍显示“”

    string _points;
    public string Points
    {
        get => _points;
        set => SetProperty(ref _points, value);
    }

3 个答案:

答案 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"