问题标签 [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 - WPF DependencyProperty 链通知
我正在探索 WPF 世界,我在网上找到了一个关于如何在 xml 上使用绑定的好例子
http://www.codeproject.com/Articles/37854/How-to-Perform-WPF-Data-Binding-Using-LINQ-to-XML
现在我试图扩展这个例子:我想在XElement
UI 和 UI 之间创建一个“中间类”,并将所有 togheder 绑定在一个链中,所以,如果我对 xml 进行了修改,那么我有中间的属性类更新了,然后 UI 也更新了。
这里有一些代码:
这是包装的类XElement
这是MiddleClass
Book 是一个代表一本书的类,假设它现在只有一个名称属性。
UI 类未命中,但它应该绑定在公共List<Book>
BookList 上并以ListBox
Enyone 知道为什么我没有收到任何通知......或者我必须做些什么来保持公共List<Book>
BookList 与私有同步IEnumerable<XBookList>
?
c# - VisualTreeHelper 没有找到 DependencyObject 的子项,我怎样才能可靠地找到对象?
我有一个名为ZoneContainer
. 这有一个属性,它包含一个ListBox
包含多个ListItem
s 的属性。每个 ListItem 包含一个DockPanel
.
我正在尝试使用以下代码来查找内部存在ZoneContainer
但childrenCount
每次都为 0 的孩子。
是否有另一种方法可以在对象列表中找到特定的子对象?最终我试图找到 DockPanel,但它没有找到任何孩子,即使我知道他们在对象中。
wpf - WPF DependencyProperty Validation 绑定到对象属性
我正在尝试为给定控件创建验证规则(在这种情况下,它是 TextBox)。
尽管采取了适当的步骤,但我无法成功绑定到对象的属性:利用了 ValidationRule 和 DepedencyProperty。
请在下面找到代码。附带说明的是,自定义验证类中的“必需”始终为 False,除非我在 XAML 中明确设置值(没有绑定,根据“Is Ranged”参数)。
任何提示和建议表示赞赏。
先感谢您 :)
XAML 代码:
验证类:
验证依赖类:
wpf - 从 DependencyObject 继承的自定义 IValueConverter
我想尝试能够有一个转换器,其参数可以与当前数据上下文绑定。谁能告诉我为什么到达 Convert() 函数时,Source 属性始终为空?
c# - 将 DependencyProperty 添加到扩展 ObservableCollection 的类
我有一个名为的类ObservableCollectionWithValidState
,用于在其子对象违反验证规则时通知自己。
班级:
当这种情况发生时,我很想DependencyProperty
在这个类上有一个我可以设置的可以绑定的类。
问题是我的课程扩展ObservableCollection<T>
了,但我看不到如何DependencyObject
进入图片。
我正在粘贴该类的初始声明以及我想添加的属性示例(除非我可以扩展,否则这将不起作用DependencyProperty
)。
我的两个问题:
- 这可能吗?
- 如果不可能,您可以建议替代实现吗?
wpf - WPF+MVVM:当需要 DependencyProperty 时如何使用普通的旧 ViewModelBase
我正在使用第 3 方 WPF 控件,其 MVVM 支持依赖于它所绑定的 VM 上的依赖项属性。控件附带的示例使用派生自 DependencyObject 的 ViewModelBase 类,因此一切正常。
我的 ViewModelBase 实现了 INotifyPropertyChanged,由于各种原因,将其更改为 DependencyObject 是不现实的。
我的问题是如何将我的 ViewModels 与这个 WPF 控件一起使用?我想我需要的是在普通的旧 ViewModel 中“嵌入依赖对象”或“插入依赖属性”之类的东西。
顺便说一句,我的 MVVM 应用程序是基于接口的,即 SomeViewModel 到处都是 ISomeViewModel。
c# - 尝试创建一种递归方法以分层顺序列出逻辑依赖项
我使用了VisualTree
帮助程序来获取窗口中的所有视觉效果,但有时某些控件未在返回列表中列出。那是因为它们仍然没有被渲染,据我所知,VisualTree
只有当控件已经被渲染时,枚举才会有所帮助。
现在我正在尝试编写一个简单的递归方法,它将在一个窗口中列出所有逻辑对象,以便我可以在它们被渲染之前对其进行操作。
所以这是我第一次尝试为逻辑树创建这样的东西:
wpf - 附加属性与自定义控件
我经常感叹 WPF ToggleButton 没有 AlternateContent 和 AlternateContentForeground 的属性这一事实。我很好奇创建带有附加属性的 DependencyObject 或从 ToggleButton 派生自定义控件是否有任何优势?
我的假设是,如果附加属性可用于多个控件,则它们是有利的。因此,在我的情况下,我倾向于派生控件,因为这些属性是切换按钮所独有的。
c# - 在 DependencyObject 上使用 INPC 来支持内置转换行为是否错误/不好?
我们有一个 DependencyObject,它将 Value 属性定义为 DP。它还定义了一个 Presets 集合,表示一些预定义值的友好名称。
我们的 UI 应该工作的方式是当我们绑定到 Value 属性时,如果该值与预设匹配,我们显示友好名称,否则我们直接显示该值。
使用转换器已经过时了,因为没有可靠的方法既可以传入 Presets(它们是按项目定义的,它们不是共享的)也可以进行双向绑定,所以我们的想法是在对象上公开 FriendlyValue 属性并将其用于 UI 中的绑定,让它在内部处理转换。
由于 FriendlyValue 依赖于已经存在的 Value DependencyProperty,我们认为我们只需将转换逻辑包装在 CLR getter/setter 中,但这意味着当实际 Value DP 发生变化时,它需要通知 UI FriendlyValue 也已更新,并且由于 FriendlyValue 是 CLR 属性,因此我们需要为该特定属性支持 INPC。
我的问题是,处理这个问题的正确/建议方法是,还是我应该使用第二个 DP,监视其更改处理程序并相应地设置另一个属性,添加状态变量以阻止一个设置另一个,然后设置首先,然后再次更新另一个,等等。
这是对象属性的代码...
那么这是否被认为是内置转换器行为的良好做法?
wpf - 在 DependencyObject 子类中,您可以覆盖 DependencyProperty 吗?
出于说明目的,假设我想创建一个名为 BizarroTextBox 的 WPF 文本框的子类,其中 IsReadOnly 属性与其默认行为具有相反的效果。
现在通常在非 WPF 世界中,对于假设的“文本框”控件,这将是相对微不足道的......
...但我不确定在处理 DependencyObjects 和 DependencyProperties 时如何/是否可以做类似的事情。
虽然我可以在我的子类中重新定义属性的元数据并使用 Coalesce 函数来反转该值,但我不知道有一种方法可以在返回时反转它。
您也不能简单地使用布尔反转转换器,因为只有一个对象不能同时是源和目标,除非您连接两个不同的属性,而我们不是。
您也不能在 CLR getter/setter 中执行此操作,因为它们是使用绑定时绕过的便捷方法。
如果他们有一种在路上合并的方法会容易得多,但我不知道有任何这样的事情。那么这可以做到吗?