问题标签 [propertychanged]

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 投票
2 回答
3017 浏览

c# - 使模拟在更改时触发 PropertyChanged

我正在使用 RhinoMocks,并且我有一个 Mock,它有一个我需要作为真实属性的属性 - 在设置时更新其值,并在属性更改时触发 PropertyChanged。

模拟对象的接口本质上是这样的:

在创建模拟时,我设置了 PropertyBehavior - 这使得它实际上更新了它的伪造值:

但是当我更新值 PropertyChanged 时不会触发。现在,该接口没有实现 INotifyPropertyChanged 接口,因为它是一个接口。如何触发 PropertyChanged?

0 投票
3 回答
5487 浏览

wpf - 直接绑定到带转换器的 DataContext 时 WPF 更新绑定

通常,当您希望数据绑定控件“更新”时,您使用“PropertyChanged”事件向接口发出信号,表明数据已在后台发生更改。

例如,您可以有一个文本块,该文本块通过属性“DisplayText”绑定到数据上下文

<TextBlock Text="{Binding Path=DisplayText}"/>

从这里开始,如果 DataContext 使用 PropertyName“DisplayText”引发 PropertyChanged 事件,那么这个文本块的文本应该更新(假设您没有更改绑定的模式)。

但是,我有一个更复杂的绑定,它使用数据上下文的许多属性来确定控件的最终外观。为此,我直接绑定到数据上下文并使用转换器。在这种情况下,我正在使用图像源。

<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>

如您所见,我使用没有路径的 {Binding} 直接绑定到数据上下文,并使用 ImageConverter 来选择我要查找的图像。但现在我没有办法(据我所知)告诉绑定更新。我尝试用“。”引发 propertychanged 事件。作为属性名称,它不起作用。

这可能吗?我是否必须将转换逻辑包装成绑定可以附加到的属性,或者有没有办法告诉绑定刷新(无需显式刷新绑定)?

任何帮助将不胜感激。谢谢!-亚当

0 投票
1 回答
841 浏览

.net - 如何在 Timespan 子类型上最好地实现 IPropertyChanged?

在 .NET(和 WPF)中,我需要监视Timespan不包含任何更改事件(如PropertyChanged. 添加此功能的最佳方法是什么?

0 投票
2 回答
194 浏览

wpf - WPF DataBinding:绑定到引用其他两个属性的属性

基本上,我如何(单向)绑定到名为 txtFullName 的文本框。最初,文本框中的任何文本都会被清除/删除,因为 ToString 返回“”。但是,当我对 FirstName 或 LastName 进行更改时,它不会更新针对 FullName 的绑定。有什么办法可以做到这一点?

另外,有没有办法绑定到一个方法(不仅仅是一个字段)?也就是说,直接将绑定设置为 ToString() 方法并在 FirstName 或 LastName 更改时更新它?

哦,如果有某种通用的方法来处理这个,那就太棒了……比如 FullName 字段上的一个属性或 ToString 方法上的一个属性,告诉它要查找哪些属性以进行更改。

0 投票
3 回答
1760 浏览

wpf - WPF 过多的 PropertyChanged 事件

通常在对象的属性设置器中,我们可能希望引发 PropertyChanged 事件,例如,

在我们现有的代码库中,我看到 PropertyChangedEventArgs 被发送 null 以指示对象的所有属性都已更改的实例。这似乎效率低下,并且似乎导致触发的事件比需要的要多得多。它似乎也会导致对象以循环方式相互更新的问题。

这是一个很好的做法吗?

代码中的注释试图证明它是合理的......

任何想法都非常感谢。

问候, Fzzy

0 投票
1 回答
885 浏览

wpf - WPF - ObservableCollection PropertyChanged 事件?

我有一个具有 type 属性的对象ObservableCollection<bool>。它使用 TwoWay 绑定绑定到表单上的复选框列表。我想为此添加一个 PropertyChanged 通知,以便如果选择了某些值,则其他一些值会自动取消选择。有没有办法做到这一点?

当集合中的值发生更改并且我使用的是 MVVM 设计模式时,不会触发 ObservableCollection.PropertyChanged 事件。

0 投票
1 回答
16386 浏览

wpf - 如何在 WPF/XAML 中正确使用 INotifyPropertyChanged

我有一个要绑定到控件的自定义对象。在那个自定义对象上,我实现了 INotifyPropertyChanged 接口。我已成功绑定到我的对象和该对象上的属性。

我不知道如何从那里去。我已经为此工作了 2 天,但仍然无法正常工作。

我的假设是,当我更改绑定到控件的属性时,该属性中设置的值将显示在控件中。但是,无论我如何更改属性,UI 都不会更新到超出其初始值。

我以这种方式实现了 INotifyPropertyChanged: A base class which implements INotifyPropertyChanged

所以我的基类是这样的:

我从上面的那个类继承,在我的派生类中,我在我的财产上这样做:

我的 XAML 看起来像这样(缩写版):

您可以看到窗口的数据上下文是一个名为 SizingProject 的属性。SizingProject 属于派生类型(派生自 BindableObject),其中包含 Name 属性并引发 PropertyChanged 事件处理程序。

在我的窗口的构造函数中,我填充了 SizingProject 并设置了它的 Name 属性。

为了测试这一点,我在窗口上还有一个按钮,它触发一个事件,将 Name 属性设置为不同于原来的值。但是,当更改 name 属性时,什么也没有发生。我已经追溯到 BindableObject 并且 PropertyChanged 事件始终设置为 null,因此没有设置和运行任何处理程序。为什么是这样?

我想通过实现 INotifyPropertyChanged 并在绑定中使用该类型强制 WPF 自动设置该事件处理程序,然后发生正确的行为?对我来说,我从未见过这种行为。


我弄清楚了这个问题。我需要做的是为我的属性 SizingProject 创建一个 DependencyProperty。在我这样做之后,一切正常。

0 投票
1 回答
3090 浏览

binding - PropertyChangedEventHandler PropertyChanged 为空

我正在实现 PropertyChangedEventHandler PropertyChanged,它始终为空。属性字符串是正确的donno这里的问题是我正在使用的代码

并在 xaml

所以有人能知道这个问题吗?

0 投票
1 回答
2051 浏览

mvvm - FirePropertyChanged 中的 PropertyChangedEventHandler 为空

我有一个名为 EmployeeViewModel 的视图模型,它继承自 ViewModelBase。这是 ViewModelBase 的实现。

我的EmployeeViewModel有一个属性名GridResults,它绑定到了Grid on View,这里是属性定义。

现在,当我在 EmployeeViewModel 的代码中某处设置 GridResults 的值时,它会触发属性更改事件并进入

FirePropertyChanged(表达式> propertySelector)

但在该方法内部,它的 PropertyChangedEventHandler 始终保持为空,它会阻止方法的完全执行。最终,我的 Grid on View 仍然没有注意到它的底层 itemsource 已更改。

我错过了什么吗?

提前谢谢

-K9

0 投票
2 回答
5436 浏览

entity-framework - Entity Framework 4 - 如何在属性设置器中注入逻辑?

我的 edmx 中有一个从数据库自动生成的属性:Description。然后,我为实体创建一个“部分类”.cs 文件并添加一个只读属性:ShortDescription。ShortDescription 的 getter 只处理 Description(删除换行、回车等)。

如何在描述的设置器上为 ShortDescription 提出属性更改通知?

谢谢!