我有以下代码按预期工作。我想知道我怎么能够处理bool
操作。如果IsEnded
为真,我希望EnrolledTimeFormatted
返回给我None
,如果没有,那么只需返回我现在返回的内容。
private bool _isEnded;
public bool IsEnded
{
get
{
return _isEnded;
}
set
{
_isEnded = value;
RaisePropertyChanged(() => IsEnded);
}
}
private DateTime _enrolledTime ;
public DateTime EnrolledTime
{
get { return _enrolledTime ; }
set
{
_enrolledTime = value;
RaisePropertyChanged(() => EnrolledTimeFormatted);
}
}
public string EnrolledTimeFormatted=> String.Format("{0:t}", EnrolledTime);
答案 0 :(得分:2)
一个简单的ternary就可以了。
public string EnrolledTimeFormatted =>
IsEnded ? "None" : String.Format("{0:t}", EnrolledTime);
答案 1 :(得分:2)
您应该能够使用条件表达式将其考虑在内:
public string EnrolledTimeFormatted => IsEnded ? "None" : $"{EnrolledTime:t}";
由于更改_isEnabled
会影响EnrolledTimeFormatted
的值,因此IsEnded
的设置者应触发EnrolledTimeFormatted
的属性更改,同时触发IsEnded
的更改本身。
注意:由于您无论如何都在使用C#6功能,因此您也可以使用插值字符串来缩短表达式。