问题标签 [dependency-properties]

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

wpf - WPF 依赖属性问题......需要关于在这种特定情况下做什么的建议:

我正在尝试在 WPF 中创建一个数独(如填字游戏)播放器,我意识到我有一大堆控件需要知道数独网格才能运行。

正因为如此,我认为 Sudoku Grid 对象将是创建依赖属性的良好候选者。我即将开始工作,但我有一些挥之不去的问题:

  1. 谁应该拥有 SudokuGrid 依赖属性?我在想主窗口 UI 元素应该。

  2. 我是否应该将其设置为共享依赖属性,其中代表数独网格一部分的所有用户控件只需通过 .AddOwner() 方法将自己添加到属性中?

或者

将其设置为附加属性,在主窗口中定义,并允许子用户控件进行相应设置?

我真的不希望允许子控件设置他们自己的网格属性值,所以此时我倾向于共享依赖属性,但我不确定它是否符合我的想法。

最终我想要的是一个属性,如果它设置在父 UI 元素上,所有知道该属性的子 UI 元素将共享相同的值,覆盖任何先前的值/设置。共享依赖会这样做吗?

我知道这有点啰嗦,但任何帮助将不胜感激!

0 投票
1 回答
1873 浏览

c# - 动画完成或取消时,如何将动画的最终值设置为属性?

我尝试将 DependencyProperty 从一个值动画到目标值(在代码中),当动画完成(或被取消)时,将最终值设置为属性。最终值将是动画结束时的 To 值或取消动画时的当前计算值(由动画)。

默认情况下,动画没有这种行为,即使动画已经完成,它也不会改变实际值。

一次失败的尝试

前段时间我写了这个辅助方法来实现上述行为:

不幸的是,如果调用 BeginAnimation(property,null) 的人删除了动画,则 Completed 事件似乎不会触发,因此在取消动画时我无法正确设置最终值。更糟糕的是我也无法删除事件处理程序......

有人知道如何以干净的方式做到这一点吗?

0 投票
2 回答
878 浏览

.net - 自定义 DependencyObject 继承树

我正在努力寻找有关 and 使用的属性继承树(或继承上下文)的足够DependencyObject信息DependencyProperty

我想使用DependencyProperty典型 WPF 页面之外的值继承功能,例如对象 A 是逻辑父对象 B,因此分配给对象 A 上的属性的值将自动传播到对象 B,除非它已经在本地设置(有点像FlowDirectionWPF 中的属性)。

如果 Object A 和 Object B 派生自DependencyObject,并且不是a 的子级UIElement (换句话说,Object A 是它自己的),那么您如何建立逻辑树以便DependencyProperty理解 B 是 A 的子级?

Hillberg Freezable Trick以及Josh Smith 的技巧包并不是我想要的。我不想从现有元素树中检索属性...我想创建自己的非可视元素树...即控制继承上下文。

有谁知道这个知识体系隐藏在哪里?

0 投票
3 回答
60623 浏览

.net - 什么是依赖属性?

.Net 中的依赖属性是什么(尤其是在 WPF 上下文中)。与普通财产有什么区别?

0 投票
1 回答
1107 浏览

.net - System.Windows.DependencyProperty 与 System.Workflow.ComponentModel.DependencyProperty

.NET Framework 似乎有两个 DependencyProperty 对象的实现

  1. System.Windows.DependencyProperty
  2. System.Workflow.ComponentModel.DependencyProperty

我知道第一个的正常使用是在 WPF 中,而第二个的正常使用是在 WF 中,但是如果有的话,它们之间有什么区别?
如果我没有使用 WPF/WF 并且仍然想使用最好使用的 DependencyProperty?
未来有合并的计划吗?

0 投票
1 回答
502 浏览

wpf - UserControl自定义DependencyProperties问题

我有一个带有图像和标签的自定义 UserControl,它们都是在设计时在 XAML 中设置的,如下所示:<controls:HomeBarButton Icon="/SuCo;component/Resources/music.png" Text="music"/>

当控件只有一个图标时,它看起来很好。当我添加 Text 属性时,图标在设计和运行时都会消失,并且文本标签会忽略 UserControl 中设置的格式,并且当标签居中时在控件的左上角只是黑色。

相关的用户控件 XAML:

代码隐藏:

我究竟做错了什么?:(

0 投票
1 回答
605 浏览

wpf - 我应该绑定什么 WPF 依赖属性来查找 FrameworkElement 的中心?

我正在编写一个 WPF 应用程序,我正在尝试找出最好的绑定方法,但只提出了“hack”解决方案,我希望有更好的方法。

我在 Grid 中有一个 Border 对象(从 FrameworkElement 派生)。由于子 TextBlock 的文本发生变化,边框的大小可能会发生变化。边框的位置可能会改变,因为网格中的其他东西可能会重新排列边框所在的单元格。

我想从屏幕的左下角画一条线到边框对象的确切中心。无论边框在屏幕上的大小或位置如何,位于边框正中的线的端点必须始终保持在中心。

我怎样才能做到这一点?

我的想法是绑定到依赖属性似乎是处理这个问题的理想方式。我可以在 Binding 对象上使用 IValueConverter 来计算确切的中心,因为它是 ActualWidth、ActualHeight 和 TranslatePoint() 以找到左上角。但是,我不知道我应该绑定哪个依赖属性,当边框改变大小和/或位置时会提醒我。

0 投票
1 回答
1959 浏览

silverlight - 导致 XamlParseException AG_E_PARSER_BAD_PROPERTY_VALUE 的依赖属性

我创建了两个 UserControl,第一个显示对象列表,第二个显示从第一个中选择的对象的详细信息。我在第一个控件上创建了一个依赖属性,并将每个 UserControl 绑定到我的 Resources 集合中声明的对象。我已经看到博客文章描述了这一点,但似乎无法让它发挥作用。我收到 XamlParseException。有趣的是,只有当我在我的第一个 UserControls 上设置绑定 Mode=TwoWay 时才会出现异常。这是代码...

页面.xaml

项目列表.xaml.cs

欢迎任何建议!

0 投票
2 回答
647 浏览

wpf - 如何实现“直通”数据绑定?

一点背景知识:我正在从存储在属性表(控件类型、标签、边距等)中的数据库中加载 WPF UI,我将其加载到我称为 ControlPresenter 的类中。基本上我将 ControlPresenter 设置为 ContentPresenter 的 DataContext 并使用 TemplateSelector 来选择要加载的控件类型。DataTemplate(s) 从 ControlPresenter 公开的 DependencyProperties 中加载它们的属性。

这一切都非常有效。当我尝试将其他演示者(具有实现 INotifyPropertyChanged 的​​普通属性)中的数据(例如,TextBox 的 Text 属性与演示者的 Name 属性)绑定到这些控件时,我遇到了问题。控件的 DataContext 是关联的 ControlPresenter,因此我不能直接绑定到其他演示者,也不能在同一个依赖项属性上设置两个绑定(我不能将控件和所需的演示者属性绑定到同一个 DP) .

可能的解决方案:

  1. 我可以将所有其他演示者转换为使用 DP(非常耗时且容易导致继承问题)
  2. 我可以为要通过的每个属性使用两个 DP,并尝试通过更改的通知将它们绑定在一起

这两个似乎都有问题并且容易破裂,所以我希望其他人能提出更好的解决方案。

编辑:我想出了一个效果很好的解决方案(见下文)。感谢所有看过这个的人,如果你想出比我更好的方法,请告诉我。

0 投票
2 回答
47734 浏览

wpf - 当页面的数据上下文用于其他绑定时,如何绑定到 WPF 依赖属性?

当页面的数据上下文用于其他绑定时,如何绑定到 WPF 依赖属性?(简单问题)