我有一个 WCF 服务,它通过如下结构传递状态更新:[DataContract]public struct StatusInfo{ [DataMember] public int Total; [DataMember] public string Authority...
我有一个 WCF 服务,它通过如下结构传递状态更新:
[DataContract]
public struct StatusInfo
{
[DataMember] public int Total;
[DataMember] public string Authority;
}
...
public StatusInfo GetStatus() { ... }
我在 ViewModel 中公开一个属性,如下所示:
public class ServiceViewModel : ViewModel
{
public StatusInfo CurrentStatus
{
get{ return _currentStatus; }
set
{
_currentStatus = value;
OnPropertyChanged( () => CurrentStatus );
}
}
}
XAML 如下:
<TextBox Text="{Binding CurrentStatus.Total}" />
当我运行应用程序时,我在输出窗口中看到错误,表明无法找到 Total 属性。我检查了一遍又一遍,发现我输入的是正确的。然后我突然想到,错误明确指出无法找到“属性”。因此,向结构添加一个属性使其正常工作。但我觉得 WPF 无法处理字段的单向绑定很奇怪。从语法上讲,您可以在代码中以相同的方式访问它们,并且仅为 StatusInfo 结构创建自定义视图模型似乎很愚蠢。我是否遗漏了有关 WPF 绑定的某些内容?您可以绑定到字段吗?还是属性绑定是唯一的方法?