问题标签 [inotifypropertychanged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3939 浏览

wpf - INotifyPropertyChanged 和 DependencyProperty 有什么关系?

我正在使用 DependencyProperties 构建一个简单的 UserControl 示例,以便可以在 XAML 中更改控件的属性(下面的代码)。

但当然,在我的应用程序中,我不希望此控件具有紧密耦合的代码隐藏,而是用户控件将是一个名为“DataTypeWholeNumberView”的视图,并且它将拥有自己的名为“DataTypeWholeNumberViewModel”的 ViewModel。

因此,我将在 ViewModel 中实现下面的 DependencyProperty 逻辑,但在 ViewModels 中,我通常继承 INotifyPropertyChanged,这似乎给了我相同的功能。

那么两者之间的关系是什么:

  1. 将 UserControl XAML 的 DataContext 绑定到其背后具有 DependencyProperties的代码
  2. 将 UserControl XAML(视图)的 DataContext 绑定到其ViewModel(继承自 INotifyPropertyChanged)并具有实现 INotifyPropertyChanged 功能的属性?

XAML:

代码背后:

0 投票
1 回答
389 浏览

extension-methods - 有没有办法将规范的 OnPropertyChanged 方法编写为扩展方法?

基本上我想做这样的事情:

这给出了“System.ComponentModel.INotifyPropertyChanged.PropertyChanged 只能在 += 或 -=" 的左侧使用

我的意思是我可以通过这样做来解决它:

但调用代码看起来不太好:

与这个:

没什么大不了的,但是能够像调用实例方法一样调用它会很好。

0 投票
2 回答
2864 浏览

c# - 将 HashSet 绑定到 ListView 项(C#、WPF)

我正在尝试将 HashSet 绑定到 ListView 项。我在这里记录了我的代码:

任何人都可以帮助我提示如何做到这一点吗?非常感谢!

干杯

0 投票
1 回答
759 浏览

c# - 除了数据绑定,.NET Framework 中是否使用了 INotifyPropertyChanging / Changed?

例如,如果您有一个 BindingList<Person> 并将其绑定到控件,如果您的 Person 类未实现 INotfiyPropertyChanging / Changed,则您对基础 List 的更改将不会自动显示在您的控件中。我的问题是,就框架而言,这些接口还有其他用途吗?我不是在谈论使用这些接口来实现基于这些事件的自己的操作,我是在 .NET Framework 本身中谈论,是否还有其他需要实现这些接口?

0 投票
2 回答
336 浏览

.net - 在 Visual Studio 2008 中使用 INotifyPropertyChanged 调试属性设置

我有一个类,其属性由另一个类设置。在这个属性设置器中,程序爆炸了。

我只需要知道实际设置属性的类。

我以为我可以只看堆栈跟踪,但因为我使用的是 INotifyPropertyChanged,我认为它没有给我我正在寻找的完整信息。

如果这有帮助,这是堆栈跟踪:

System.Windows.dll!System.Windows.Data.BindingExpression.TargetTextBoxLostFocus(object sender = {System.Windows.Controls.TextBox}, System.Windows.RoutedEventArgs e = {System.Windows.RoutedEventArgs}) + 0x55 字节
System.Windows .dll!System.Windows.CoreInvokeHandler.InvokeEventHandler(int typeIndex = 160,System.Delegate handlerDelegate = {System.Windows.RoutedEventHandler},对象发送者 = {System.Windows.Controls.TextBox},对象 args = {System.Windows。 RoutedEventArgs}) + 0x6b3 字节 System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj = 173934552, System.IntPtr unmanagedObjArgs = 273432032, int argsTypeIndex = 160, string eventName = "M@2910") + 0x335字节

0 投票
2 回答
208 浏览

silverlight - 分层 INotifyPropertyChanged

我有一个为属性实现 INotifyPropertyChanged 的​​类。

我有一个绑定到该属性的控件。

我有另一个监听 propertychanged 事件的类。在该类的事件处理程序中,我更改了代码中属性的值。

我遇到的问题是,我不想在事件处理程序中执行任何逻辑,因为下次它会因为代码的属性更改而触发。

但是,如果用户同时更改属性的值(通过异步 gui 输入),我仍然希望触发逻辑。我还需要确保控件得到更新(这是双向绑定)。

在不让这变得一团糟的情况下,最好的方法是什么?

0 投票
3 回答
15793 浏览

wpf - INotifyPropertyChanged WPF

INotifyPropertyChanged 的​​目的是什么。我知道每当更改属性时都会触发此事件,但是 View/UI 如何知道触发了此事件:

这是实现 INotifyPropertyChanged 事件的客户类:

但是现在如何通知 UI 属性已更改。就像用户将 null 或空分配给名字一样,我如何在 UI 上显示 MessageBox。

0 投票
2 回答
2578 浏览

wpf - WPF:使用模型视图视图模型刷新具有绑定属性的控件

我正在为 WPF 应用程序使用模型视图视图模型模式。我有一个具有两个属性的 ViewModel(设置为页面 DataContext),其中一个是具有 PropertyChanged 事件的实体。在事件处理程序中,我将另一个属性(布尔值)的值设置为某个值。

现在 Button 和 TextBox 属性在首次加载时绑定良好,并且 PropertyChanged 事件正在触发并执行其操作。但是,Button 的 IsEnable 属性不会更新以反映其绑定到的属性的更改。

ViewModel 看起来像这样:

xaml 排序看起来像这样:

当我更改 ViewModel 中的基础属性时,如何让 Button 更新其 IsEnable 属性?

0 投票
1 回答
473 浏览

c# - 在动态代理中保留基类属性

我正在使用 Castle DynamicProxy2。是否可以告诉代理对象继承其基类(代理类)的属性和基类属性的属性。如果不可能在城堡里。任何其他为此目的的图书馆?

我在这里发布了问题的来源Generic IPropertyChangedNotifier using Dynamic Proxy and wcf serialization question

0 投票
1 回答
1925 浏览

c# - BindingList 内存泄漏

我的应用程序使用从 Bindinglist 继承的自定义列表,然后绑定到所有 UI 控件。该列表是实现 INotifyPropertyChanged 的​​基本对象的集合。我怀疑内存泄漏并使用 memprofiler 对我的应用程序进行了分析,这确认我的所有列表都从未被释放,并且它们一直在坚持,因为它们订阅了 bindinglist 的 propertyChanged 事件处理程序。

这是我的对象的样本

这是分析器中的分配堆栈

有人可以帮我处理清单吗?

谢谢大家


亨克,你是对的。问题不在于我提到的代码,而是我将其范围缩小到阻止我的表单被处理的代表。我正在制作一个样本来复制我将上传到网站的问题。谢谢