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

c# - 计算 Property Changed MVVM 上两个值的结果

我正在尝试通过 MVVM 中的以下简单公式计算“NetAmount”

GrossAmount + Carriage - 折扣 = NetAmount

我正在使用 MVVM Light Toolkit 并声明属性如下

我在 XAML 中将这些属性与如下文本框绑定:

我将一个文本块与NetAmount属性绑定,如下所示:

视图模型是SalesOrderViewModel.

我不知道将上述公式放在哪里,以便在更改任何文本框的值时,它会导致更改NetAmount属性。

我对 C# 并不陌生,但对 MVVM 和PropertyChanged事件很陌生,我知道我做错了一些非常小的愚蠢的事情,但我无法理解它。

任何帮助将不胜感激。

0 投票
0 回答
292 浏览

silverlight - 从什么时候开始我们在 Silverlight 4 中有 UpdateSourceTrigger = PropertyChanged?

我在 Silverlight 4 中进行开发,并且随着时间的推移,我习惯了绑定的 UpdateSourceTrigger 属性有两种选择:默认和显式。但是今天我发现我也可以选择“PropertyChanged”,这非常非常受欢迎但是......出乎意料。在我的项目属性中,我仍然可以看到“Silverlight 4”,但不知何故我成功使用了 Silverlight 5 功能......有人对此有解释吗?

0 投票
1 回答
1648 浏览

wpf - WPF ValidationRules 禁用 PropertyChanged

我有以下文本框,它们在视图模型中更改了属性。当我插入 Binding.ValidationRules 并插入一些错误的值时,它不会触发 propertychanged 事件,我不明白为什么。有什么帮助吗?

0 投票
1 回答
4057 浏览

mvvm - 我可以用 RaisePropertyChanged 做什么?

我在 Windows Phone Silverlight 应用程序中使用 MVVM Light。

我真的不明白 RaisePropertyChanged 应该如何工作;让我解释一下,用这样的代码

调用 RaisePropertyChanged("SelectedRecipe") 时会发生什么?

我希望使用我的代码执行对新方法的调用,或者类似的东西,但我无法在我找到的(少数)示例中找到类似的东西。那么,它是如何工作的呢?

0 投票
3 回答
427 浏览

c# - 每当 ObservableCollection 中任何项目的某个字段发生更改时,如何获得通知?

假设Statusan 的属性发生了Event变化。OnPropertyChanged("Status")会叫,对吧?

但我希望该收藏activities也能收到有关此Event更改的通知。

有什么办法吗??

尝试恢复: 上面描述了这种情况。想象一下某个事件的一些变化。我需要将包含此事件的父活动的集合活动通知此更改......所以我可以调用一个方法来更新显示在我的界面某个位置的事件。而在这个界面中只是可见的活动集合。

正因为如此,还必须通知集合。

0 投票
2 回答
2947 浏览

c# - 使用反射更改属性时引发事件

我在 C# 中工作,并且我有一个只能使用Reflection(出于某些个人原因)访问的对象。因此,当我需要为其属性之一设置一些值时,我会执行以下操作:

而且,为了获得它的价值,我使用了 method GetValue

我的问题是:有没有办法在使用反射更改属性时触发事件?

0 投票
1 回答
169 浏览

c# - 绑定动画播放不止一次

我使用了 MVVM,我遇到了需要一个按钮来触发动画的情况。所以我为它设置了 EventTrigger 并运行了这个动画:

问题是我不希望该动画播放不止一次。因此,在第一次按下按钮后,它应该从 0 变为 150,并且对于所有成功的点击,它不应该是可见的,所以它应该从 150 变为 150。
在我的 ViewModel 中,我有一个属性 TooltipPosition 设置为 0。我创建了一个命令我的按钮将此属性设置为 150 并调用。

问题是这个属性在第二次点击后改变了,所以我可以看到这个动画播放了两次。

我该如何解决?

-编辑-

是的,很抱歉,我没有包括所有信息。我正在尝试为很多对象设置动画,其中只有一个是可见的。因此,如果用户在 GUI 中更改对象的选择,那么动画应该再次从 0 开始到 150。很明显,如果元素 A 是动画的,然后是 B,然后是 A,那么这个动画将不可见。

-edit2-

我为 TextBlock 的宽度设置动画。问题是我有多个(绑定数据)TextBlocks,并且在任何时候都应该只有一个或一个都不可见。因此,我绑定了每个 TextBlock 的 Width 属性并进行了动画处理,因此基本上所有这些属性都受此动画的影响。但是其中只有一个可能是可见的,所以它可以解决问题。

0 投票
2 回答
2480 浏览

c# - 设置 DataContext 后 PropertyChanged 事件为空

我在 View 的构造函数中将我的 View 的 DataContext 设置为我的 ViewModel 的一个实例,只是标准的东西。此后不久,一个UPDATE_RECENT_DOCUMENTS_LIST事件从我的 ViewModel 正确捕获的事件聚合器中触发。更改了属性并调用了 onPropertyChanged 方法,但由于 PropertyChanged 事件为空而失败。

我要做的下一件事是对 UI 执行一个操作,该操作引发CREATE_PROJECT事件,并且同一个 ViewModel 正在接收事件,但现在,PropertyChanged 事件不再为空,一切都按预期工作。

在设置 DataContext 之后,在它注册到 PropertyChanged 事件之前是否需要经过特定的时间量?是否有一个我可以等待的事件来确保 PropertyChanged 事件不为空?

此外,在集成 Prism 并使用非常方便的 EventAggregator 之后,我没有使用标准 .NET 事件遇到这个问题。

我在 View 和 ViewModel 后面显示我的代码,为简洁起见省略了 View XAML。

工具栏视图.xaml.cs:

工具栏视图模型.cs

}

0 投票
1 回答
379 浏览

winforms - 如何订阅从子对象引发的属性更改事件?

我有一个 Invoice 对象,它公开了一个只读属性 - Total。这个总数只是发票项目总数的总和:

InvoiceItems 类中的 Total 属性如下所示:

类和属性由 LINQ 生成(除了我自己创建的两个类中的 Total 属性)。例如,当价格在 上发生变化时InvoiceItem,我希望该变化反映在Total其 parent 的属性中Invoice

0 投票
1 回答
1032 浏览

c# - 如何将 PropertyChanged 事件处理程序分配给 ObservableCollection 所有者

我需要在 ObservableCollection 的所有者中处理 ObservableCollection 中项目的 PropertyChanged 事件。必须有比以下更优雅的方式:

我想将 MyViewModelPropertyChanged 事件处理程序传递给 LoadMyViewModels,这样我就不必遍历集合两次(一次在加载时,一次在事件分配时)。

MyViewModelPropertyChanged 设置反映在 UI 上的包含视图的属性(集合绑定到 TreeView,我需要根据是否已检查项目来启用/禁用 UI 中的字段)。

如果不是所有引用的帖子,我已经看过最多,但我有点迷茫。

上面的代码做了我需要做的事情,但我知道有更好的方法。请引用适当的参考或代码示例。

谢谢。