问题标签 [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 投票
4 回答
300 浏览

vb.net - 通知 XML 文件的更改

我在 WPF/VB.NET 2008 中创建了这个简单的文本板程序,它会在每次击键时自动将表单内容保存到 XML 文件中。

现在,我正在尝试让程序实时查看 XML 文件的更改。例如,如果我打开两个文本板,当我在第一个上书写时,它会自动反映在另一个文本板上。

我怎样才能做到这一点?

我的一位同事告诉我阅读有关 iNotifyPropertyChanged 的​​信息(我做过),但是如何将其应用于我的应用程序..?

:(帮助~

顺便说一句,我从 Google Wave 演示中得到了这个想法,实际上我正在尝试做一些更大的事情。

0 投票
1 回答
792 浏览

c# - 在基类中实现 INotifyPropertyChanged 或类似的自定义事件

有没有办法做到这一点:

我需要开发最简单的方法来支持注册某些类的属性更改。除了添加 INotifyProperyChanged 支持的手动方式之外,还有没有办法这样做:

这样我就可以执行 Child.PropertyChanged += some_handler 并仅在 Child 属性更改时收到通知。这不适用于 NHibernate 或其他任何东西,它用于在整个项目中手动使用。我已经研究了一些使用 Castle Dynamic Proxy 执行此操作的示例(如此),但我不明白如何利用它:(

当然想探索那里的框架和一般的 AOP,我现在没有足够的时间......

提前感谢您的任何评论...

0 投票
10 回答
68482 浏览

c# - PropertyChanged 事件始终为空

我有以下(缩写)xaml:

我有一个单例类:

在我的主窗口构造函数中:

我无法让文本块显示测试消息。当我通过调试监控代码时,PropertyChanged 始终为空。有任何想法吗?

0 投票
1 回答
331 浏览

inotifypropertychanged - PropertyChanged 事件,OnClick 时引发?

我有一个 WinForms 应用程序,其中包含一些实现 INotifyPropertyChanged 的​​业务对象,并通过表单上的一些控件和 BindingSource 挂钩 PropertyChanged 事件,这将事件引发回我的业务对象层...

只有一个问题 - 一切正常,除非只有当控件失去焦点时。例如,用户更改了一些文本字段,但他必须在点击“保存”按钮之前实际单击某个其他控件(例如,他必须将焦点放在另一个控件上)。

有没有办法将它连接到 OnClick 或其他东西,以便在用户键入文本时(甚至在他更改下拉值之后)将更改传播到我的业务对象层,这样我就不必强迫用户在他可以保存之前单击不同的文本框?

谷歌搜索让我无处可去,只能找到有关如何在 WPF =( 中轻松执行此操作的示例。但没有 WinForms 示例...

请指教,

德鲁

0 投票
1 回答
6215 浏览

c# - 如何使用 INotifyPropertyChanged 实现 DataTable 属性

我已经创建了 WPF MVVM 应用程序,并将 WPFToolkit DataGrid 绑定设置为 DataTable,所以我想知道如何实现 DataTable 属性以通知更改。目前我的代码如下所示。

这个问题有其他解决方案吗?

0 投票
2 回答
8273 浏览

c# - WPF INotifyPropertyChanged 未更新数组属性?

我创建了一个小示例来演示我遇到的问题。

首先我的课:



问题在于 Values 属性,因为它是一个数组。当数组中的元素更新时,我不确定如何正确调用 INotifyPropertyChanged。

这是我的xml:

以及背后的代码:

当我单击按钮时,它会更改第一行的值,但该更改不会反映在 UI 上。如果我更改 Title 属性,则标题会正确更新。

有什么想法可以调用 INotifyPropertyChanged 以便它了解数组元素已更新?

0 投票
3 回答
1653 浏览

c# - 使用 CodeContracts 强制执行 INotifyPropertyChanged 的​​正确实施 - “需要未经证实”

我正在寻找一种简单的方法来强制执行 INotifyPropertyChanged 的​​正确实现,即当 PropertyChanged 被引发时,它必须引用实际定义的属性。我尝试使用 Microsoft 的新 CodeContract 工具执行此操作,但我不断收到警告“CodeContracts:需要未经证实”。这是我的代码...

反正有没有让这个工作?

0 投票
1 回答
16011 浏览

c# - 为什么 OnPropertyChanged 在代码隐藏中不起作用?

我试图通过将 ViewModel 模型放入后面的代码中并将 DataContext 绑定为“this”来简化一些代码,但它的工作方式似乎有所不同,在以下示例中:

为什么单击按钮时,即使调用了 OnPropertyChanged("Message"),绑定到“Message”的 TextBlock 也不会更改?

XAML:

代码背后:

0 投票
1 回答
1443 浏览

.net - .net winforms 中的 DataBound UserControl 和 PropertyNameChanged 事件问题

我有一个用户控件,带有一个文本框和一个数据绑定属性 - 值。Value 可以是任何对象,例如 Color、Array、Font 等。只要文本更改,属性 Value 就会更改,只要它有效。

查看 msdn 文章:如何:应用 PropertyNameChanged 模式 ,它说我应该 从控制端使用PropertyNameChanged 事件模式。

现在,如果我有 DataSourceUpdateMode = OnValidate,那么我什至不需要应用此模式。如果,说。我的 Value 属性绑定到业务对象中的颜色字段,然后在我在文本框和选项卡中键入 red 后,再到另一个字段,然后表单上绑定到相同颜色字段的任何其他字段都会立即更新。

但是,如果我的 DataSourceUpdateMode = OnPropertyChange,我希望表单上的所有其他字段在我按下“d”后立即更新(如 re'd')。

这不会发生。所以,我应用了前面提到的 PropertyNameChanged 模式,但它仍然没有发生。

但是,如果我删除 PropertyNameChanged 事件,而是使用 INotifyPropertyChanged,它会完美运行。

我的问题是,根据文章, INotifyPropertyChanged 应该由您的业务对象使用,而不是用户控件。

它有效,但我不想遇到任何未来的问题。

有人知道发生了什么吗?

预计到达时间:

假设可以使用 INotifyPropertyChanged,我现在还有一个问题。我不希望用户必须订阅“PropertyChanged”事件,然后检查参数以查看属性“Value”是否发送了它。所以,我补充说:

这打破了绑定。源代码甚至没有更新验证,更不用说属性更改了。

我想我必须将 ValueChanged 事件重命名为 FeckingValueChanged 之类的。

如果框架实际上首先对引发的 ValueChange 事件做了一些事情,我不会太介意!

0 投票
5 回答
712 浏览

wpf - .net propertychange 通知处理程序 - 字符串与表达式

使用 WPF 使我成为 INotifyPropertyChanged 的​​粉丝。我喜欢使用一个辅助函数,它接受一个表达式并将名称作为字符串返回(参见下面的示例代码)。然而,在我看到的非常熟练的程序员所看到的许多应用程序中,我看到了处理原始字符串的代码(参见下面的第二个示例)。我所说的精通是指知道如何使用表达式的 MVP 类型。

对我来说,除了简单的重构之外,让编译器捕获错误的机会使 Exression 方法更好。是否有支持使用我遗漏的原始字符串的论点?

干杯,贝里尔

表达式助手示例:

原始字符串示例代码(在某些 ViewModelBase 类型类中):