问题标签 [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.
c# - PropertyChangedCallback 中的 DependencyObject 不是同一个对象
我的依赖属性出现了一些奇怪的行为。我在 MyControl 类中设置了以下属性。
后来,我设置了以下内容:
我设置了一个断点并检查了“this”的地址。然后我在 OnMyTempChanged 中设置了一个断点(见上文),并检查源地址。它与之前的“this”(MyControl)的地址不同。而且,数据也不一样。我设置的其他属性也不相同。看起来我有两个不同的 MyControl 对象实例。
这里发生了什么?我需要来自原始对象的数据……而不是我在 PropertyChangedCallback 中得到的混乱副本。
c# - 使依赖对象属性可绑定为静态资源?
如何使一组依赖对象属性可绑定以供以后绑定为静态资源?
我现在的代码,似乎我DependencyObject
绕过了依赖属性系统......
我有以下课程:
在 XAML 中,我创建了一个资源数组,其中包含一些绑定,如下所示:
在调试绑定时,我注意到如果我删除 DP 的设置器,XAML 会显示一个错误,指出该属性丢失。我的理解是 XAML 使用 DP 系统来分配值从而启用绑定。在这种情况下,如果 XAML 需要一个“正常”属性,那么绑定是不可能的。任何人都可以启发我如何使它工作?
c# - 设置 DependencyProperty 的值并保留 OneWayToSource-Binding
如果我在一个属性DependencyObject
上OneWayToSource
Binding
设置了一个,然后尝试再次设置 DP 的值,则将Binding
被删除。我不能使用直接(正常)绑定的“反向”方式,所以我必须使用 OneWayToSource 绑定。我的问题是是否有另一种方法可以实现这一目标。
c# - 检测 PropertyChangedCallback 中的子属性变化并获取子属性
我将DepdendencyObject
s 与PropertyChangedCallback
s 一起使用,并且我想检测此回调中的子属性更改。问题是DependencyPropertyChangedEventArgs
-Object 只让我看到包含DP
更改的属性的属性。有没有办法达到这个子属性?
有人会
并且 PropertyChangedCallback 被调用,因为MainProperty
改变(不是SubProperty
)。
c# - 未在列表框选择上更新自定义 WPF 绑定
我对这件可能微不足道的事情感到困惑。DevExpresses
我在类的后代上有我的自定义属性LayoutGroup
(不应该有任何区别 IMO):
然后我将 XAML 绑定到名为listStates
.
绑定到 listStates 的对象列表包含两个属性(简化):
我错过了一些明显的东西吗?因为我希望当我更改列表框选择(单个)时,它也会更新IsExpanded
组上的属性。我有更多工具绑定的子属性(如 所示DataContext="{Binding Tool}"
)并且更新得很好。因此,DataContext
在列表框选择上正确更改。除了这个属性IsExpanded
(应该展开/折叠布局组)。
我在做什么错,以及如何做到这一点,当列表框更改时,IsExpanded
将轮询绑定以从中获取值IsTool
,并将设置它(取决于选择)。
c# - 在 UI 线程之外使用依赖对象的最佳实践
正如标题所暗示的那样,我发现自己在这种情况下相当多,并且相信我做错了什么。我经常想要一个根据后台任务的工作不断更新的 UI,但发现简单地尝试更新 UI 和在 UI 线程上工作之间的分离可能很难找到。
假设我有一个简单的 DependencyObject:
这些对象存储在称为 mTaskItems 的 ObservableCollection 中。在一些用户事件上,我想对这些对象做一些工作:
我无法检查上述示例中 TaskItem 的 DependencyProperty 状态,因为它现在位于拥有它的不同线程上。
如果您想在处理过程中更新 UI,或者我是否以完全错误的方式处理这个问题,那么在整个业务逻辑中散布调度程序是否正常?
我的依赖对象是否应该根本不用作业务数据容器,而只是作为 UI 数据容器存在?(如果是这样,链接它们的最佳设计是什么?)
谢谢。
visual-studio - 使用 Dependency 对象进行彩色动画 WP8
我在它的 ControlTemplate 中使用了一个我已经塑造它的按钮。我还在 controlTemplate 中添加了一个故事板。故事板更改了我的 controlTemplate 中元素的边界。我从后面的代码中访问它并激活它,问题是当我在手机上执行此操作时会有延迟。我在 MVVM 结构之后构建了我的代码,我的观点是:
还有我激活故事板的 ViewModel 部分:
我已经读过可以为动画使用依赖对象,但我不确定它是如何工作的,或者它是否会工作,但是任何尝试为动画实现依赖对象的帮助将不胜感激。
c# - XAML 绑定到 UserControl 中的 FrameworkElement
我得到了一个具有多个属性的自定义用户控件(MyControl)(效果很好)。我想要一个新属性,让使用 UserControl 的页面“粘贴”一些内容直接显示在 UserControl 中 - 例如。路径。我努力了; ContentPresenter,ContentControl,StackPanel,没有运气......
MyControl.xaml
MyControl.xaml.cs
SomePage.xml
c# - WPF:自定义 DependencyObjects 的值继承?
我正在尝试在自定义 WPF DependencyObject 中为 DependencyProperty 实现值继承,但我失败了:(
我想做的事:
我有两个类T1和T2都有一个 DependencyProperty IntTest,默认为 0。T1 应该是 T2 的根,就像 Window 是它包含的 TextBox 的逻辑根/父级一样。
因此,当我没有明确设置T2.IntTest的值时,它应该提供T1.IntTest的值(就像 TextBox.FlowDirection 通常提供父窗口的 FlowDirection 一样)。
我做了什么:
我创建了两个类 T1 和 T2,从 FrameworkElement 派生,以便将FrameworkPropertyMetadata与FrameworkPropertyMetadataOptions.Inherits一起使用。我还读到,为了使用值继承,您必须将 DependencyProperty 设计为 AttachedProperty。
目前,当我为根 T1 赋值时,子 T2 的 DP-Getter 不会返回它。
我究竟做错了什么???
这是两个类:
这是试用它的代码:
c# - 也实现 INotifyPropertyChanged 的 DependencyObject?
ObservableCollection
对于 Silverlight 和 WPF 应用程序,我有一个包含作为依赖项属性的自定义控件。该控件的一个元素 Border 需要根据ObservableCollection
.
例如,假设集合是动物、蔬菜和矿物质,并称为ObjectList
. 如果至少有一只动物,我希望边框是红色的;如果没有动物,但至少有一种蔬菜,它是绿色的;否则该集合只有矿物,因此将显示为蓝色。
我创建了一个可以获取集合并确定颜色的转换器,因此具有如下绑定:
挑战在于,随着项目的添加/删除,ObjectList
我需要触发对背景颜色的重新评估;然而,ObjectList
它本身并没有改变。我想我有三个选择,但不确定哪个可能是最佳实践:
每次添加或删除对象时创建一个新集合。这似乎很严厉,但会导致
ObjectList
被更改并因此触发后台更新。在回调中调用
UpdateTarget
background 属性。由于不适用于 Silverlight,我只是删除并重新添加绑定 - 再次有点笨拙。CollectionChanged
ObjectList
UpdateTarget
在我的
INotifyPropertyChanged
自定义控件PropertyChanged
上实现并调用ObjectList
CollectionChanged
我最喜欢 3,但事实上我有一个也实现 INPC 的 DependencyObject 似乎很奇怪。是吗?有没有更优雅的方法?