gpt4 book ai didi

c# - WPF:在不实现 INotifyPropertyChanged 接口(interface)的情况下显示属性更改

转载 作者:太空狗 更新时间:2023-10-29 23:27:32 26 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我有一个 bool 属性,我想向用户显示它(例如,带有一个只读复选框)。通常我会实现 INotifyPropertyChanged,这样 WPF 就可以对其进行操作并相应地更改复选框。

我现在遇到的问题是这个属性值是从一个封闭的框架中检索的。这意味着,我只能轮询值,但没有我可以订阅的更改事件。

我的第一个想法是创建一个单独的线程,它会定期(比如每 10 毫秒)轮询值并在值更改时创建一个事件。但这对我来说似乎有点矫枉过正。

所以我的问题是:WPF 中是否有一项功能可以显示更改的值,而 INotifyPropertyChanged 不是一个选项?也许是某种投票机制?如果没有,您将如何解决这个问题?

感谢您的宝贵时间。

最佳答案

如果该值来自您无法控制的某个地方,请为相关对象创建一个“ViewModel”并自行处理。

public class ClosedSourceObjectViewModel : ViewModelBase
{
private ClosedSourceObject ClosedSourceObject
{
get;
set;
}

public bool SomeProperty
{
get { return this.ClosedSourceObject.SomeProperty; }
set
{
if (value != this.ClosedSourceObject.SomeProperty)
{
RaisePropertyChanging("SomeProperty");
this.ClosedSourceObject.SomeProperty = value;
RaisePropertyChanged("SomeProperty");
}
}
}
}

关于c# - WPF:在不实现 INotifyPropertyChanged 接口(interface)的情况下显示属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com