在 WPF 中进行数据绑定(bind)时显示“不可用”值的典型模式是什么?
例如我正在使用 MVVM 和 TextBlock
我 View 中的 s 绑定(bind)到我的 View 模型的属性,其中一些是 int
s。有时我想在我的 View 中临时显示两个破折号(“--”)而不是属性值。
我可以将属性更改为字符串,然后在 getter 中添加一些逻辑来指定它是返回值还是“--”。这可能是使用 MVVM 的合适方法,但有没有更简单的方法?
有没有办法利用 TextBlock
的FallbackValue
?或者是否有另一种方法可以暂时暂停数据绑定(bind)并显示“不可用”值?
最佳答案
FallbackValue
仅在无法解析绑定(bind)路径或转换器返回 DependencyProperty.UnsetValue
时使用.在进行 MVVM 时,通常会避开转换器。我的建议是拥有两个属性,一个包含 int
值和一个包含显示值的值:
public int SomeValue
{
get { return _someValue; }
set
{
if (_someValue != value)
{
_someValue = value;
OnPropertyChanged("SomeValue");
OnPropertyChanged("SomeValueDisplay");
}
}
}
public string SomeValueDisplay
{
get { return _someValue == -1 ? "--" : _someValue.ToString(); }
}
这为您提供了两全其美的体验。您的 VM 逻辑适用于
int
属性(property),但您的 TextBlock
直接绑定(bind)到 string
底层证券的表示int
.
关于wpf - WPF 中数据绑定(bind)时 "unavailable"值的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235799/