问题标签 [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.
wpf - ValidationRule 和 DependencyObject
我需要将绑定值发送到ValidationRule
. 我正在使用DependencyObject
,但值始终是null
。
这是我的DependencyObject
这是我的ValidationRule
:
这是XAML
:
当我通过 Validate in 时MyTextBoxValidationRule
TxtVal.BindingValue
总是null
. 我不知道为什么
编辑:
我改为DisplayValue
因为DataUserTypes
似乎有些混乱。
那是文本框的 Text 值的绑定。我需要DataUserTypes
根据属性进行验证ValidateValue
。我正在尝试使用DependencyObject
TxtVal
.
我还修复了复制和粘贴类型。有一个字段TextValID
应该是TxtVal
. 对于那个很抱歉。
c# - 在嵌套的用户控件之间绑定数据
我有一个主窗口,用于启动驱动一系列用户控件的应用程序。默认情况下,主窗口内部有一个用户控件。我在将依赖对象从子用户控件传播到父用户控件时遇到了挑战。预先警告,我是一名 DBA,这是我第一次尝试 MVVM,因此该方法可能完全无效。如果您需要任何其他代码片段,我也可以提供它们:)。这个窗口里面有一个用户控件:
该用户控件包含两个依赖对象:一个接收设备,另一个接收事件。根据我发送的项目(或订购的项目,如果两者都设置),我更改 UserControl1 中任何后续用户控件的数据源。下面是 UserControl1 中的两个依赖对象:
在 Usercontrol1 中,我有两个额外的用户控件,它们接受来自 usercontrol1 的设备编号和事件编号,这些编号由主窗口传递或设置。
一切正常,将数据从窗口发送到父控件,然后将父控件发送到两个用户控件。不幸的是,如果我更改其中一个用户控件(垂直摘要)中的值,它不会冒泡到顶部控件,然后滴到其他控件。这是供参考的垂直摘要视图(代码隐藏):
这是供参考的 VerticalSummaryViewModel:
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
一种简单的重现方法:
那么,这是期望的行为还是错误?
c# - 子对象属性更改触发父母 DependencyPropertyChanged 回调?
在定义继承Animatable
, 类的基类时,我发现了一些奇怪的行为。
当我在“父”类中创建子 DependencyProperty,然后定义该“父”类的实例,然后更改父子的属性时,我为父子属性定义的 PropertyChangedCallback 会触发。
符合必要的最小、完整和可验证示例:
重现:
- 创建 WPF 项目。目标.Net 4.7.2。
- 选择
App.xaml
- 在 下
Properties
,更改Build Action
为Page
- 将代码粘贴到
App.xaml.cs
. 覆盖一切。
运行此代码,您应该会在控制台中看到消息打印两次。
为什么会这样?有没有办法阻止它发生?
在这里跟进:
c# - 为什么要再次设置这个 Animatable 属性?
跟进这个问题。
显然,由于某种原因,在显式设置Parent.Child
属性(在构造函数内部或显式构造函数外部)之后,当我设置对象的Child.Trigger
属性时Parent.Child
,Parent.Child
对象又被设置了。这可以通过中断_OnChildChanged
静态构造函数中定义的方法来观察。在它被调用的第二个实例中,您可以看到它e.OldValue
不为空,并且它与e.NewValue
.
为什么设置Child
属性Parent
时又设置了Trigger
属性?
符合必要的最小、完整和可验证示例:
重现:
- 创建 WPF 项目。目标.Net 4.7.2。
- 选择
App.xaml
- 在 下
Properties
,更改Build Action
为Page
- 将代码粘贴到
App.xaml.cs
. 覆盖一切。
c# - 您可以将 DependencyObject 子类化,将当前读/写属性更改为子类中的只读属性吗?
标题说明了一切。由于 DependencyProperties 的工作方式,不认为这是可能的,但我想我会问。您可以将子类中的读写属性更改为只读属性吗?
c# - MVS 无法识别 SetValue() 和 GetValue()
所以,我正在尝试制作一个 wpf 日历,但是 GetValue() 和 SetValue() 方法有问题。我已经声明了所有库,它告诉我这些方法根本不存在并且无法识别它们。
我希望你能帮助我,并提前谢谢你!
c# - WPF c# Inherited Dependency Object:如何释放实例事件?
我正在修改标准的 WPF 网格。
在它上面我有几个 ObservableItemCollections 是依赖属性。
这些依赖项属性具有将实例事件处理程序设置为 CollectionChanged 和 ItemChanged 事件的 Property Changed 回调。
Observable Collections 在控件内部工作,不链接到 ViewModel。
Grid 似乎没有 dispose 方法,并且没有调用解构器。
当我遇到内存泄漏时如何释放事件?
提前谢谢了。
示例代码:
c# - 更改子依赖属性时触发依赖属性更改
我有以下课程:
现在如果使用这个类作为另一个对象的相同属性,当第一个属性发生变化时,这个对象的 OnChanged 不会被触发,因此绑定也不起作用。什么定义了父依赖对象已更改?