问题标签 [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 投票
9 回答
28562 浏览

c# - 隐藏继承的成员

我正在寻找某种方法来有效地隐藏继承的成员。我有一个从公共基类继承的类库。一些较新的后代类继承了已退化的依赖属性,并且在使用IntelliSense或在可视化设计器中使用这些类时可能会有些混乱。

这些类都是为 WPF 或 Silverlight 2.0 编译而编写的控件。我知道ICustomTypeDescriptorand ICustomPropertyProvider,但我很确定它们不能在 Silverlight 中使用。

与其说是功能问题,不如说是可用性问题。我该怎么办?

更新

我真正想隐藏的一些属性来自不属于我自己的祖先,并且由于我正在设计的特定工具,我无法使用new操作员进行成员隐藏。(我知道,这很荒谬)

0 投票
3 回答
2456 浏览

.net - 如何将 ChangeEvent 处理程序附加到继承的依赖项属性?

如何将 propertychanged 回调附加到继承的属性?像这样:

0 投票
1 回答
263 浏览

.net - 附加属性在类图中的什么位置?

在 UML 图或类似 VS2008 类图的几乎 uml 图中表示附加属性的最合适方式是什么?

0 投票
6 回答
7597 浏览

.net - 有什么方法可以取消注册 WPF 依赖属性?

我在单元测试中遇到了一个不寻常的问题。我正在测试的类在运行时动态创建一个依赖属性,并且该依赖属性的类型可能会因环境而异。在编写单元测试时,我需要创建具有不同类型的依赖属性,这会导致错误,因为您无法重新定义现有的依赖属性。

那么有没有办法取消注册依赖属性或更改现有依赖属性的类型?

谢谢!


OverrideMetadata() 只允许您更改很少的内容,例如默认值,因此它没有帮助。AppDomain 方法是一个好主意,并且可能有效,但似乎比我真正想为了单元测试而深入研究的要复杂。

我从来没有找到取消注册依赖属性的方法,所以我小心翼翼地重新组织了我的单元测试以避免这个问题。我得到的测试覆盖率有所降低,但由于这个问题永远不会在实际应用程序中发生,而且只有在单元测试期间我才能忍受它。

谢谢您的帮助!

0 投票
3 回答
7239 浏览

c# - 在不触发事件的情况下设置 WPF 依赖属性

我需要在我的代码中的控件 (Slider.Value) 上设置依赖属性,而不触发 ValueChanged 事件(因为我设置了值,而不是用户)。在 WPF 中处理这种情况的最佳方法是什么?

为了澄清起见,我要做的是将 WPF 滑块连接到 WinForms 用户控件。目前在我的应用程序中,我有一个 ValueChanged 事件处理程序,它通过方法调用将滑块值传递给 WinForms 控件。WinForms 控件(实际上是原生 OpenGL 窗口的包装器)需要能够根据其内部计算动态更改滑块。为此,我使用了一个滑块 (ISlider) 的抽象,我在我的应用程序中实例化了该滑块的 WPF 风格,并通过 WinForms 用户控件上的 .NET 属性将一个句柄传递给 WinForms 控件。所有这些目前都在工作,只是当内部逻辑决定滑块需要更改时,它调用 ISlider::SetPos(),然后更改 WPF 滑块,然后在滑块上触发 ValueChanged 事件,并且该事件的处理程序提取滑块的位置并将其传递给最初发起该事件的 WinForms 控件。ligaz 和 Alan Le 的建议似乎都应该奏效,但我只是不确定我是否会以最好的方式解决这个问题。

0 投票
2 回答
879 浏览

wpf - 设置 DependencyProperty 值时,是在强制之前还是之后调用验证?

我创建了一个带有 DependencyProperty 的简单类。设置值时,我观察到在 CoerceValueCallback 之前调用了 ValidateValueCallback。

wpftutorial和其他书籍中,声明在验证之前调用强制。

0 投票
2 回答
197 浏览

wpf - 从不相关的类中“借用”依赖属性是否可以接受?

我正在编写一个在 WPF 中呈现一些内容的类,我想让用户控制内容的呈现方式。渲染主要是描边线,所以我决定查看 System.Windows.Forms.Shapes.Line 类来了解我可能想要实现的属性。这导致我实现了大部分StrokeXXXX属性,这是一项繁重的工作,因为每个属性都需要元数据来影响渲染。

一位同事建议我只是“借用” Shape 的属性,如下所示:

这似乎是一个不错的主意。我认为这样做我会失去设置强制和属性更改回调的能力,但看起来采用 PropertyMetadata 的重载允许这样做。我能看到的唯一缺点是如果 Shape 的实现发生变化,它会影响我们的类,但我不确定我期望 .NET 接口多久发生一次显着变化。

你怎么看?当知名类具有您想要的行为和稳定的界面时,这是定义属性的一个不错的捷径,还是在汽油浴中玩火的可靠方法?

0 投票
4 回答
2585 浏览

.net - 当依赖属性发生变化时,是否有通知机制?

在 Silverlight 应用程序中,我试图找出用户控件上的属性何时发生更改。我对一个特定的 DependencyProperty 感兴趣,但不幸的是,控件本身并没有实现 INotifyPropertyChanged。

有没有其他方法可以确定值是否已更改?

0 投票
14 回答
76748 浏览

wpf - ViewModel 中的 INotifyPropertyChanged 与 DependencyProperty

在 Model-View-ViewModel 架构 WPF 应用程序中实现 ViewModel 时,似乎有两个主要选择如何使其可数据绑定。我已经看到了使用DependencyPropertyView 将要绑定的属性的实现,并且我看到了 ViewModel 的实现INotifyPropertyChanged

我的问题是我什么时候应该更喜欢其中一个?有性能差异吗?将 ViewModel 依赖项提供给 WPF 真的是一个好主意吗?在做出设计决定时我还需要考虑什么?

0 投票
6 回答
9243 浏览

wpf - WPF 依赖属性

我刚刚意识到我一直在强制绑定/依赖属性,并没有真正从根本上理解这个概念。

继承人的依赖属性:

XAML 是这样的:

Problem在对象的构造函数中手动将属性设置为一个值,但它不会TextBlock相应地更新 . . . 有任何想法吗?我试过绑定Mode="OneWay"Mode="TwoWay"还是不行。

我以为这应该自动工作?还是我从根本上搞错了什么?

谢谢