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

wpf - WPF DependencyProperty 链通知

我正在探索 WPF 世界,我在网上找到了一个关于如何在 xml 上使用绑定的好例子

http://www.codeproject.com/Articles/37854/How-to-Perform-WPF-Data-Binding-Using-LINQ-to-XML

现在我试图扩展这个例子:我想在XElementUI 和 UI 之间创建一个“中间类”,并将所有 togheder 绑定在一个链中,所以,如果我对 xml 进行了修改,那么我有中间的属性类更新了,然后 UI 也更新了。

这里有一些代码:

这是包装的类XElement

这是MiddleClass

Book 是一个代表一本书的类,假设它现在只有一个名称属性。

UI 类未命中,但它应该绑定在公共List<Book>BookList 上并以ListBox

Enyone 知道为什么我没有收到任何通知......或者我必须做些什么来保持公共List<Book>BookList 与私有同步IEnumerable<XBookList>

0 投票
3 回答
2426 浏览

c# - VisualTreeHelper 没有找到 DependencyObject 的子项,我怎样才能可靠地找到对象?

我有一个名为ZoneContainer. 这有一个属性,它包含一个ListBox包含多个ListItems 的属性。每个 ListItem 包含一个DockPanel.

我正在尝试使用以下代码来查找内部存在ZoneContainerchildrenCount每次都为 0 的孩子。

是否有另一种方法可以在对象列表中找到特定的子对象?最终我试图找到 DockPanel,但它没有找到任何孩子,即使我知道他们在对象中。

0 投票
4 回答
3929 浏览

wpf - WPF DependencyProperty Validation 绑定到对象属性

我正在尝试为给定控件创建验证规则(在这种情况下,它是 TextBox)。

尽管采取了适当的步骤,但我无法成功绑定到对象的属性:利用了 ValidationRule 和 DepedencyProperty。

请在下面找到代码。附带说明的是,自定义验证类中的“必需”始终为 False,除非我在 XAML 中明确设置值(没有绑定,根据“Is Ranged”参数)。

任何提示和建议表示赞赏。

先感谢您 :)

XAML 代码:

验证类:

验证依赖类:

0 投票
1 回答
1635 浏览

wpf - 从 DependencyObject 继承的自定义 IValueConverter

我想尝试能够有一个转换器,其参数可以与当前数据上下文绑定。谁能告诉我为什么到达 Convert() 函数时,Source 属性始终为空?

0 投票
1 回答
846 浏览

c# - 将 DependencyProperty 添加到扩展 ObservableCollection 的类

我有一个名为的类ObservableCollectionWithValidState,用于在其子对象违反验证规则时通知自己。

班级:

当这种情况发生时,我很想DependencyProperty在这个类上有一个我可以设置的可以绑定的类。

问题是我的课程扩展ObservableCollection<T>了,但我看不到如何DependencyObject进入图片。

我正在粘贴该类的初始声明以及我想添加的属性示例(除非我可以扩展,否则这将不起作用DependencyProperty)。

我的两个问题:

  1. 这可能吗?
  2. 如果不可能,您可以建议替代实现吗?
0 投票
1 回答
472 浏览

wpf - WPF+MVVM:当需要 DependencyProperty 时如何使用普通的旧 ViewModelBase

我正在使用第 3 方 WPF 控件,其 MVVM 支持依赖于它所绑定的 VM 上的依赖项属性。控件附带的示例使用派生自 DependencyObject 的 ViewModelBase 类,因此一切正常。

我的 ViewModelBase 实现了 INotifyPropertyChanged,由于各种原因,将其更改为 DependencyObject 是不现实的。

我的问题是如何将我的 ViewModels 与这个 WPF 控件一起使用?我想我需要的是在普通的旧 ViewModel 中“嵌入依赖对象”或“插入依赖属性”之类的东西。

顺便说一句,我的 MVVM 应用程序是基于接口的,即 SomeViewModel 到处都是 ISomeViewModel。

0 投票
1 回答
476 浏览

c# - 尝试创建一种递归方法以分层顺序列出逻辑依赖项

我使用了VisualTree帮助程序来获取窗口中的所有视觉效果,但有时某些控件未在返回列表中列出。那是因为它们仍然没有被渲染,据我所知,VisualTree只有当控件已经被渲染时,枚举才会有所帮助。

现在我正在尝试编写一个简单的递归方法,它将在一个窗口中列出所有逻辑对象,以便我可以在它们被渲染之前对其进行操作。

所以这是我第一次尝试为逻辑树创建这样的东西:

0 投票
2 回答
446 浏览

wpf - 附加属性与自定义控件

我经常感叹 WPF ToggleButton 没有 AlternateContent 和 AlternateContentForeground 的属性这一事实。我很好奇创建带有附加属性的 DependencyObject 或从 ToggleButton 派生自定义控件是否有任何优势?

我的假设是,如果附加属性可用于多个控件,则它们是有利的。因此,在我的情况下,我倾向于派生控件,因为这些属性是切换按钮所独有的。

0 投票
1 回答
769 浏览

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,监视其更改处理程序并相应地设置另一个属性,添加状态变量以阻止一个设置另一个,然后设置首先,然后再次更新另一个,等等。

这是对象属性的代码...

那么这是否被认为是内置转换器行为的良好做法?

0 投票
0 回答
388 浏览

wpf - 在 DependencyObject 子类中,您可以覆盖 DependencyProperty 吗?

出于说明目的,假设我想创建一个名为 BizarroTextBox 的 WPF 文本框的子类,其中 IsReadOnly 属性与其默认行为具有相反的效果。

现在通常在非 WPF 世界中,对于假设的“文本框”控件,这将是相对微不足道的......

...但我不确定在处理 DependencyObjects 和 DependencyProperties 时如何/是否可以做类似的事情。

虽然我可以在我的子类中重新定义属性的元数据并使用 Coalesce 函数来反转该值,但我不知道有一种方法可以在返回时反转它。

您也不能简单地使用布尔反转转换器,因为只有一个对象不能同时是源和目标,除非您连接两个不同的属性,而我们不是。

您也不能在 CLR getter/setter 中执行此操作,因为它们是使用绑定时绕过的便捷方法。

如果他们有一种在路上合并的方法会容易得多,但我不知道有任何这样的事情。那么这可以做到吗?