如何解决我可以在WPF中捕获对可观察结构的成员的更新吗?
| 我有一个在COM库中定义的结构。 在我的viewmodel中,我创建了一个可观察的实例,并希望将结构的每个成员绑定到视图中的不同控件。 ConfigStaticDataDetails变量通过COM中的委托进行更新。 有没有办法捕获结构成员的更新,以便我的视图反映更新? 结构的一部分:public struct ConfigStaticData
{
public string Callsign;
}
我的:变量:
private ConfigStaticData _ConfigStaticDataDetails;
public ConfigStaticData ConfigStaticDataDetails
{
get
{
return _ConfigStaticDataDetails;
}
set
{
_ConfigStaticDataDetails = value;
OnPropertyChanged(\"ConfigStaticDataDetails\");
}
}
在XAML中:
<TextBox Name=\"ConfigStaticDataCallsignLabelTxt\"
Margin=\"0,2,2\"
Width=\"230\"
Style=\"{DynamicResource EditableTextBox}\"
Text=\"{Binding Source=ConfigStaticDataDetails,Path=Callsign}\" />
我尝试了不同的方法,但是这是我当前的代码(不起作用)。
解决方法
我认为您应该使用自己的类替换该结构,而仅使用该结构以实现可移植性。结构应该是不变的。因此,几乎没有什么值得观察的。而且由于值的语义,每个观察者可能看到的是一个不同的值(或者可能是装箱的对象)。结构和事件不能很好地融合在一起...
, 我认为您可能应该在Binding Converter中编写一些代码以方便通知。为了使其更具可移植性,您可以将\“ notify \”逻辑包装在与您的结构相关的扩展方法中
, 感谢您的投入。
我认为我的解决方案将是重新设计COM接口,并使用实现INotifyPropertyChanged接口的类而非结构。这似乎按预期工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。