问题标签 [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 回答
2377 浏览

c# - 通过 WCF 的 ObservableCollection

如果服务器端的集合已更改(通过客户端操作或服务器操作),我从几天以来一直在尝试将 PropertyChanged 事件从我的 wcf 服务获取到 wcf 客户端。必须有更好的解决方案,而不是使用回调并重新加载列表......或者?

在服务器端:(几乎就像另一篇文章中的示例) ObservableCollection 和 CollectionChanged 事件作为 WCF 数据合同

在客户端:

到目前为止它的工作......我可以在客户端查询集合,但是当服务器集合发生变化时我没有收到“propertyChanged”?

怎么了?我的错误和误解在哪里?

0 投票
1 回答
8948 浏览

wpf - 未调用依赖属性的 PropertyChangedCallback

如果有一个带有 DependencyProperty 的自己的用户控件和相应的回调方法,如下所示:

使用此用户控件时,我将名为“Rates”的 ObservableCollection 绑定到 RatesProperty。费率和相关方法如下所示:

当我更改 ObservableCollection Rates(例如使用this.Rates = new ObservableCollection<double>() { 1.0, 2.0 })时,用户控件的 OnRatesChanged() 方法会像预期的那样被调用。但是当我执行以下命令时,它不会被调用:

我希望当我使用正确的属性名称引发 PropertyChanged 事件时,始终会调用用户控件中的相应回调。那是错的吗?我找到了这个线程:Getting PropertyChangedCallback of a dependency property always - Silverlight 涵盖了 silverlight,但我认为 WPF 也是如此。

所以后台的框架检查绑定的属性(在我的例子中是“Rates”)是否改变了,只有当它改变时,它才会调用相关的回调,对吗?因此更改我收藏的元素没有任何效果,我总是要更改完整的收藏?

谢谢!

0 投票
2 回答
2324 浏览

wpf - 如何在 WPF 中将初始化参数传递给 UserControl(使用 MVVM)

我有一个名为 ActionsTreeView 的 UserControl,我使用 MVVM 实践构建了其中我有一个 IPluginsProvider 接口,用于填充我的 UserControl 中的数据。我希望能够提供一个实现此IContentProvider接口的对象作为参数来初始化我的 UserControl 的 ViewModel。

到目前为止,这是我的方法,这是行不通的。我想知道我是否走在正确的道路上?我在我的用户控件中声明了一个DependencyProperty对我想要实例化此 UserControl 的 mainWindow 可见的用户控件。此代码只是尝试将 PluginsProvider 对象传递给需要它来构建其 ViewModel 的我的 UserControl。

我的 UserControl 中的 PluginProviderDependencyProperty设置器永远不会被击中,因为我的PropertyChanged处理程序在 MainWindow.xaml.cs 中始终为空联系?

ActionsTreeView.xaml.cs

主窗口.xaml.cs

在 MainWindow.xaml 中使用我的 UserControl

0 投票
0 回答
141 浏览

.net - 如何检测基类中更改的属性

我创建了一个继承自的自定义控件Label,我添加了一个字符串属性SecondLanguageText

我想检测RightToLeft基类 ( Label) 的属性何时更改为用新属性替换文本属性SecondLanguageText,我想通过添加属性更改OnRightToLeftChanged时触发的事件来做到这一点RightToLeft

0 投票
2 回答
16047 浏览

c# - 为什么我使用 UpdateSourceTrigger=PropertyChanged ,TwoWay 还不够?

你好; 有源文本框和目标文本框 txttarget 绑定到 txtsource。在txtsource中写东西时,txttarget发生了变化。一切都很好。但是在 txttarget 上写,我没有看到 txttarget 有任何变化?有双向模式。双向模式还不够?我可以在不使用“UpdateSourceTrigger=PropertyChanged”的情况下编写吗?

0 投票
3 回答
2635 浏览

wpf - 在 C++/CLI 中订阅窗口的 PropertyChanged 事件

我只是尝试使用 C++/CLI 订阅 WPF 属性更改事件。我没想到这会变得困难。

首先,我尝试订阅某个窗口的特定属性(IsMouseDirectlyOver),最后通过以下代码成功:

然后我尝试订阅对象的任何属性更改(这对我来说最重要,因为我的最终代码必须能够通过属性名称处理属性更改)。我在这方面完全失败了。

我尝试了各种方法,但没有任何效果。我找不到任何 C++/CLI 示例,但根据文档和 C# 示例,以下对我来说似乎是最明智的代码:

但是编译器通过错误 C2039 告诉我“PropertyChangedEvent”不是“System::Windows::Window”的元素。

我怎样才能达到我想要的?

0 投票
3 回答
2296 浏览

c# - WebBrowser OnPropertyChange 事件未触发

我有一个网页,上面有一个输入按钮。单击此按钮,在特定的 div 中加载一些数据。我的问题是我无法捕捉到这些数据。

下面的代码是我尝试解决这个问题,但没有成功。

如果我点击输入按钮,div 的内容会被修改,但resultEventHandler不会触发。

所以,我有两个问题:

  1. 这段代码我的错在哪里?
  2. 是否有“正常方式”(我的意思是不使用计时器或)在 C# 中 Aplication.DoEvents()使用控件来处理 ajax ?WebBrowser
0 投票
1 回答
2780 浏览

c# - 使用其设置器捕获属性更改

我想在属性更改时收到通知,以便我可以在数据库中记录属性的旧值和新值。

所以我决定采用属性设置器的方法,并有一个处理所有属性的通用方法。

我创建了下面的类:

在我的财产上,我这样称呼它:

但这是第一次使用泛型,所以很少有顾虑:

  • 我如何在我的财产上调用它?
  • 这是一个好方法吗?
  • 我可以公开调用函数 PropertyChangedExtendedEventArgs(string propertyName, T oldValue, T newValue)并保存到数据库吗?
0 投票
0 回答
1114 浏览

c# - 带有 DataTemplateSelector 的 WPF ListView:PropertyChanged 始终将焦点设置为 ListView

我对这个问题感到非常沮丧,但也许它真的很微不足道,我只是看不出问题出在哪里。情况如下: 我有一个绑定到 ItemsSource 的 ListView。根据类型,DataTemplateSelector 决定使用哪个模板。

如果我通过控件(文本框)选项卡一切正常。只要我在文本框中输入一个值,然后从文本框属性中跳出标签,就会调用此属性的更改。我的控件得到更新。一切正常,但问题来了:当控件更新时,焦点不会移动到下一个制表位,而是跳转到 ListView。我该如何禁用它?我怎样才能让它移动焦点,就像没有输入数据并且没有引发属性更改一样?

提前致谢

更新:XAML 的一部分,如果您需要更多信息,请告诉我

更新 2 :在 ListView 上设置 Focusable=false 后,如果 PropertyChanged 被提升,焦点现在会跳出整个 ListView 控件

ListView 声明:

模板示例:

更新 3: 在 ListViewItems 的焦点丢失事件中,我可以看到焦点有时设置为 DisconnectedItem(请参阅SO 上的 DisconnectedItem ,这可能是我有这种行为的原因。

我现在通过手动恢复焦点来解决我的问题。在 ListViewItem GotFocus 和 LostFocus 事件中,我存储选定的 ListViewItem 并在需要恢复焦点时设置一个标志,然后可以在 ItemContainerGenerator.StatusChanged 事件中完成。

这个解决方案对我来说似乎很丑 - 任何其他解决这个问题的建议或方法仍然很好。

0 投票
1 回答
420 浏览

c# - 检测何时注册到属性更改事件

我有一个Property Change活动,我想知道什么时候注册。

这是我的活动class1

这里我的寄存器class2MyObj是 a 的一个实例Class1):

当注册发生时,我想运行一个特定的功能(从class1),我该怎么做?

我找不到任何办法这样做......