【发布时间】:2017-08-11 15:21:11
【问题描述】:
我有一个 iNotifyChange 属性绑定到我的 XAML 中的标头。我想要的是从后面的代码中能够更新一个 int 值但将字符串返回到 XAML。 IE。代码将属性更新为 6,XAML 更新为“警告:6”。问题是属性的类型不能与其返回类型不同。我应该如何修改以下内容以使其正常工作?
<Expander Header="{Binding Path=DATErrorsHeader, UpdateSourceTrigger=PropertyChanged}">
private int _overallError;
public string ErrorsWarningsHeader
{
get { return "Warnings: " + _overallError.ToString(); }
set
{
int.TryParse(value, out _overallError);
NotifyPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
在代码中我基本上是在做;
viewModel.ErrorsWarningsHeader = "6";
我宁愿这是一个 int,以便我可以添加到属性的当前值。
【问题讨论】:
-
"但是将字符串返回到 XAML" -- 为什么?如有必要,WPF 会为您将
int转换为string。那么你遇到了什么问题呢? -
@PeterDuniho 所以我希望能够在后面的代码中说 myProperty = myProperty + 1 (即一个 int)但返回给 XAML 的值是“一些文本:”+ myProperty (即一个字符串)。