问题标签 [dependencyobject]

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 回答
237 浏览

wpf - ValidationRule 和 DependencyObject

我需要将绑定值发送到ValidationRule. 我正在使用DependencyObject,但值始终是null

这是我的DependencyObject

这是我的ValidationRule

这是XAML

当我通过 Validate in 时MyTextBoxValidationRule TxtVal.BindingValue总是null. 我不知道为什么

编辑:

我改为DisplayValue因为DataUserTypes似乎有些混乱。

那是文本框的 Text 值的绑定。我需要DataUserTypes根据属性进行验证ValidateValue。我正在尝试使用DependencyObject TxtVal.

我还修复了复制和粘贴类型。有一个字段TextValID应该是TxtVal. 对于那个很抱歉。

0 投票
1 回答
128 浏览

c# - 在嵌套的用户控件之间绑定数据

我有一个主窗口,用于启动驱动一系列用户控件的应用程序。默认情况下,主窗口内部有一个用户控件。我在将依赖对象从子用户控件传播到父用户控件时遇到了挑战。预先警告,我是一名 DBA,这是我第一次尝试 MVVM,因此该方法可能完全无效。如果您需要任何其他代码片段,我也可以提供它们:)。这个窗口里面有一个用户控件:

该用户控件包含两个依赖对象:一个接收设备,另一个接收事件。根据我发送的项目(或订购的项目,如果两者都设置),我更改 UserControl1 中任何后续用户控件的数据源。下面是 UserControl1 中的两个依赖对象:

在 Usercontrol1 中,我有两个额外的用户控件,它们接受来自 usercontrol1 的设备编号和事件编号,这些编号由主窗口传递或设置。

一切正常,将数据从窗口发送到父控件,然后将父控件发送到两个用户控件。不幸的是,如果我更改其中一个用户控件(垂直摘要)中的值,它不会冒泡到顶部控件,然后滴到其他控件。这是供参考的垂直摘要视图(代码隐藏):

这是供参考的 VerticalSummaryViewModel:

0 投票
1 回答
400 浏览

c# - 如何在 PropertyChangedCallback 中将 DependencyObject 转换为 FileInfo

我有一个FileInfoDependencyProperty 类型,在 中PropertyChangedCallback,我不能强制DependencyObject转换为FileInfo类型。

错误是:

无法将类型“System.Windows.DependencyObject”转换为“System.IO.FileInfo”

我想也许我遗漏了一些明显的东西(我可能是),但微软这个答案似乎同意我在做大致正确的事情。

0 投票
1 回答
120 浏览

c# - DependencyObject 不能很好地处理对象属性的相等性

我遇到了 StackOverflowException,它让我发现 DependencyObject 不能正确处理相等性?!

当 DependencyProperty 为 TypeObject时,它​​将始终使用Reference.Equals. 当应用相同的值时,这会导致每次为字符串和值类型触发 PropertyChanged。

如果你看看

DependencyObject.Equals(DependencyProperty dp,对象值 1,对象值 2)

https://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/DependencyObject.cs,3453

一种简单的重现方法:

那么,这是期望的行为还是错误?

0 投票
1 回答
219 浏览

c# - 子对象属性更改触发父母 DependencyPropertyChanged 回调?

在定义继承Animatable, 类的基类时,我发现了一些奇怪的行为。

当我在“父”类中创建子 DependencyProperty,然后定义该“父”类的实例,然后更改父子的属性时,我为父子属性定义的 PropertyChangedCallback 会触发。

符合必要的最小、完整和可验证示例:

重现:

  1. 创建 WPF 项目。目标.Net 4.7.2。
  2. 选择App.xaml
  3. 在 下Properties,更改Build ActionPage
  4. 将代码粘贴到App.xaml.cs. 覆盖一切。

运行此代码,您应该会在控制台中看到消息打印两次。

为什么会这样?有没有办法阻止它发生?

在这里跟进:

0 投票
1 回答
81 浏览

c# - 为什么要再次设置这个 Animatable 属性?

跟进这个问题。

显然,由于某种原因,在显式设置Parent.Child属性(在构造函数内部或显式构造函数外部)之后,当我设置对象的Child.Trigger属性时Parent.ChildParent.Child对象又被设置了。这可以通过中断_OnChildChanged静态构造函数中定义的方法来观察。在它被调用的第二个实例中,您可以看到它e.OldValue不为空,并且它与e.NewValue.

为什么设置Child属性Parent时又设置了Trigger属性?

符合必要的最小、完整和可验证示例

重现:

  1. 创建 WPF 项目。目标.Net 4.7.2。
  2. 选择App.xaml
  3. 在 下Properties,更改Build ActionPage
  4. 将代码粘贴到App.xaml.cs. 覆盖一切。
0 投票
0 回答
70 浏览

c# - 您可以将 DependencyObject 子类化,将当前读/写属性更改为子类中的只读属性吗?

标题说明了一切。由于 DependencyProperties 的工作方式,不认为这是可能的,但我想我会问。您可以将子类中的读写属性更改为只读属性吗?

0 投票
0 回答
48 浏览

c# - MVS 无法识别 SetValue() 和 GetValue()

所以,我正在尝试制作一个 wpf 日历,但是 GetValue() 和 SetValue() 方法有问题。我已经声明了所有库,它告诉我这些方法根本不存在并且无法识别它们。

我希望你能帮助我,并提前谢谢你!

0 投票
0 回答
140 浏览

c# - WPF c# Inherited Dependency Object:如何释放实例事件?

我正在修改标准的 WPF 网格。

在它上面我有几个 ObservableItemCollections 是依赖属性。

这些依赖项属性具有将实例事件处理程序设置为 CollectionChanged 和 ItemChanged 事件的 Property Changed 回调。

Observable Collections 在控件内部工作,不链接到 ViewModel。

Grid 似乎没有 dispose 方法,并且没有调用解构器。

当我遇到内存泄漏时如何释放事件?

提前谢谢了。

示例代码:

0 投票
0 回答
238 浏览

c# - 更改子依赖属性时触发依赖属性更改

我有以下课程:

现在如果使用这个类作为另一个对象的相同属性,当第一个属性发生变化时,这个对象的 OnChanged 不会被触发,因此绑定也不起作用。什么定义了父依赖对象已更改?