问题标签 [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.
c# - 设置属性时 PropertyChangedEventHandler 为空
现在的问题是,当我移动滑块时数据绑定工作正常(当我移动滑块时模型会更新)。
但是,当单击按钮时,我会更改模型中的值并期望它更新视图。
下面的代码:
模型中的代码:
但在 OnPropertyChanged 中,该事件为空,因此没有任何反应。为什么事件为空而不是当我的滑块移动时以及如何解决它?
silverlight - Silverlight、Unity 和 INotifyPropertyChanged
我现在正在启动一个新的 Silverlight 项目,如果我的 ViewModel(它正在为我实例化)包含 RaisePropertyChanged 事件,我会遇到 Unity 引发异常的问题。
我看起来像这样:
它继承的 ViewModelBase 如下所示:
完整的堆栈跟踪如下所示,但似乎在构造函数期间调用 RaisePropertyChanged 事件会导致 Unity 崩溃。
这是错误的完整堆栈跟踪:
所以我遇到了 NullReferenceException。我无法弄清楚如何...
data-binding - F#:使用 INotifyPropertyChanged 进行数据绑定
如何实现 INotifyPropertyChanged 以在 F# 类型中使用?谢谢!
.net - 为什么 .NET 在接收到 INotifyPropertyChanged.PropertyChanged 事件时会读取未受影响的属性值?
我是数据绑定的新手,今天遇到了以下我无法理解的奇怪现象:
我有一个带有两个标签(labelA 和 labelB)和两个按钮(buttonA 和 buttonB)的表单。
表单承载一个具有两个属性(CountA 和 CountB)的对象(称为“formState”)。labelA.Text 数据绑定到 formState.CountA,labelB.Text 数据绑定到 formState.CountB。
当 buttonA 被按下时,它使 formState 以“CountA”作为属性名称引发 PropertyChange 事件。当 buttonB 被按下时,它会引发 formState.PropertyChange,并将“CountB”作为属性名称。
我希望按下 buttonA 时只有 labelA 得到更新,按下 buttonB 时只有 labelB 得到更新。但是,当我按下任何按钮时,两个标签都会更新。我可以看到这一点,因为每次读取它们的值时 CountA 和 CountB 属性都会递增并返回一个计数器。代码如下。
有人对这种行为有解释吗?
winforms - 使用 INotifyPropertyChanged 将 Winform 控件属性绑定到用户控件上的属性
请给我提意见。Winforms 应用程序,C#。我有一个包含 DataGridView 的用户控件 (UC)。
首先,我在 UC 中有一个名为“IsComplete”的布尔公共属性。在我的 DGV 的 RowEnter 事件中,我能够相应地设置属性。
其次,我成功地实例化了这个 UC 并将其加载到我的主窗体中的指定区域。
问题: 我希望主窗体中控件的“已启用”属性在更改时自动响应 UC 中的 IsComplete 属性。
这可能吗?我在 Google 上的所有搜索都引用了使用 INotifyPropertyChanged 的示例,但仅限于同一类。
我当然会很感激这方面的任何帮助。蒂亚!
-干杯!
winforms - 可观察集合在 Winforms 和可能的替代方案中
Winforms .net 3.5 应用程序。在我的应用程序中,我有一个看起来像这样的通用类:
当我想实现某种过滤器功能时,我会在所有对话框中使用它。List<FilterItem>
所以我用构造函数中传递的预填充来调用对话框表单。现在,当对话框加载时,它会遍历每个列表项并添加:
- 一个复选框
- 组合框
- 一个文本框
到 TableLayoutPanel 中的每一行。Checkbox 从...获取其文本属性FilterProperty
及其 Checked 状态FilterPropertyChecked
...Combobox 从...获取其绑定,FilterOperator
而 Textbox 从...获取其文本值FilterValue
。
注意我只说得到。我想做的是在它们的属性必须更改的控件时自动更新这些属性。我听说过,ObservableCollection<T>
但在添加命名空间后,我似乎无法在 Winforms 中“访问”它System.Collections.ObjectModel
。
实现这一目标的最佳方法是什么。BindingList 与 INotifyPropertyChanged?? 我不是后者的专家,并且非常感谢一些指示 - 如果这是我应该走的路。
感谢你!
编辑:
好的,让我发布一些代码来展示我认为我应该做什么:)。我知道我需要INotifyPropertyChanged
在我的 FilterItem 类上实现,所以(例如,仅用于 FilterValue 部分):
现在它应该全部放在我的 Form_Load 中(这仅适用于文本框部分,我省略了 Checbox 和 ComboBox),如下所示:
文本框的数据绑定 DataSource 是 FilterItem 的“项目”。但是现在我的 Visual Studio IDE 似乎有问题,所以不能尝试这个,但是当我启动并运行它时会。我现在想知道的是:此设置是否会成功地帮助我的个人FilterItem
在他们分配的 Control 各自的属性发生变化时自动更新?
wpf - 无法更新 DataGrid
我有一个 WPF 工具包DataGrid
绑定到我ObservableCollection
的Car
视图模型中的一个。 Car
有一个PropertyChanged
事件,并且它的两个字符串属性中的每一个的设置器都会触发该事件。我还将网格的SelectedItem
属性绑定到类型视图模型中的属性Car
,也称为SelectedItem
.
在与网格相同的窗口上,我有add
和modify
的按钮delete
。 Add
并modify
打开一个带有两个文本框的对话框窗口,每个Car
属性一个。 Delete
只显示一个确认对话框,然后进行删除。
对于add
和delete
,我从 中添加或删除一个项目,ObservableCollection
并且网格会按预期自行更新。但是,因为modify
它没有。起初,我Car
没有使用PropertyChanged
,经过一番搜索,我发现当单个项目的属性发生变化时,网格需要更新。但是现在我正在使用PropertyChanged
,网格仍然没有更新。
我尝试更改SelectedItem
视图模型中的值以及直接更改集合上的项目。
我究竟做错了什么?
c# - C#/WPF:ViewModel 中所有属性的 PropertyChanged?
我有这样的课:
我的文本框绑定到 ViewModel 的名称和年龄。如果我更改 ViewModel 中的 _person 对象,我是否必须再次为每个属性调用 RaisePropertyChanged 或者是否有办法自动执行此操作(在我的具体示例中,我有大约 15 个属性..)?
谢谢你的帮助。
干杯约瑟夫
wpf - WPF CheckBox Binding - Altering value in Property Set does not affect UI
i have a simple checkbox
In Code i have a class with "INotifyPropertyChanged" and the Property
If SomeTest() returns !value so the underlying data does not have to change the CheckBox still changes its IsChecked state.
For example:
ForceInheritance is false.
CheckBox is clicked.
SomeTest() returns false.
--> The underlying data is not changed
--> I would expect the CheckBox to stay unchecked
The CheckBox gets checked.
What can i do to not change the IsChecked state of the CheckBox when the setter does not actually change the value?
I thought the "OnPropertyChanged("ForceInheritance");" would do the trick but it didn't.
Thank you for your time.
.net - 在 WPF 和 Silverlight 中的静态属性上实现 INotifyProperty 更改
问题是如何INotifyPropertyChanged
在静态属性上实现,因为您实现的事件不是静态的,并且不能由静态属性调用。此外,您不能绑定到 Silverlight 中的静态属性。
我已经看到这个问题出现在几个论坛中,提供了各种解决方案,但没有一个非常令人满意。
好吧,我想我找到了一个优雅的解决方案,但它太简单了,我觉得我一定错过了一些东西。
答案是,编写一个访问静态变量的非静态属性,如下所示:
我已经对其进行了测试,它似乎工作得很好。我错过了什么吗?