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

wpf - app.xaml.cs 中的依赖属性

我是 WPF 的新手,对于许多人来说,下面的问题可能看起来很愚蠢,请原谅我。

如何在 app.xaml.cs 中创建依赖属性?

实际上,我试图创建它。下面的代码,

抛出以下编译时错误:

当前上下文中不存在名称“GetValue”

当前上下文中不存在名称“SetValue”

有人可以帮我吗?

谢谢!

0 投票
2 回答
10012 浏览

wpf - 依赖属性依赖于另一个

如何注册一个依赖属性,其值是使用另一个依赖属性的值计算的?

因为 .NET 属性包装器在运行时被 WPF 绕过,所以不应在 getter 和 setter 中包含逻辑。解决方案通常是使用PropertyChangedCallbacks. 但是那些被声明为静态的。

例如,完成这个人为任务的正确方法是什么:

只要依赖不是循环的,是否有适当的方法来实现这一点?

0 投票
2 回答
348 浏览

wpf - 依赖属性正确使用

我有一个我正在开发的 wpf 控件。

该控件包含并封装了另一个控件。

我想将内部控件的属性公开给使用该控件的窗口。我还希望内部控件在此属性更改时执行逻辑。

有什么建议么?

0 投票
2 回答
1199 浏览

silverlight - 如何绑定到这个自定义依赖属性?

我的自定义 UserControl 中有一个 DependencyProperty,如下所示:

在 Expression Blend 3 中,我有这个:

现在,我想做的是让 ColumnWidth 依赖属性控制 EmployeeHeaderTemplate DataTemplate 中的 TextBlock 和 CallListTemplate DataTemplate 中的 ListBox 的宽度。我知道我可以在 C# 中做到这一点,但我感觉它也可以通过纯 XAML 数据绑定来实现。

但是,作为 Silverlight 和 Expression Blend 3 的新手,我不知道该怎么做。有什么建议么?

0 投票
2 回答
310 浏览

wpf - 当 PropertyChangedEventHandler 完成这项工作时,设置依赖属性有什么意义?

目前,我已使用以下方法对我在 xaml 中绑定的任何属性设置更改通知:

但是,我已经看到要实现一个依赖属性,我需要做一些事情,比如注册它和设置回调等,而这反过来又会调用上面的代码。

那么当我可以使用上述方法时,为依赖属性设置所有额外的样板文件有什么意义呢?

谢谢。

0 投票
2 回答
1611 浏览

c# - WPF MVVM 和具有依赖属性的嵌套视图

我有一个在 Xaml 中定义子视图的父视图。子视图有一个DependencyProperty绑定到父视图的 ViewModel。但是,子视图的 ViewModel 也需要该值。

ChildId被实现为ChildView控件的依赖属性。如果ChildViewModel需要ParentFooId,获取它的正确 MVVM 方式是什么?

我不想将DataContextChildView转换为 a并在 . 的处理程序中ChildViewModel设置值。对我来说,这似乎不是很 MVVM-ish。OnChildIdChangedChildView

我想到的另一种选择是ChildViewModel使用该值创建一个新的并将其设置为DataContext事件OnParentFooIdChanged中(在ParentViewModel)中;但这似乎也不完全正确,因为 ViewModel 应该对 View 不知情(因此对 s 一无所知DataContext)。

好像我错过了一些明显的东西......

0 投票
2 回答
5055 浏览

wpf - 如果我们不能绑定 MouseBinding 的 Command,我们应该怎么做?

我希望能够使用常规MouseBinding来捕获我的TextBlock. 不幸的是,该Command属性不是依赖属性,我使用的是 MVVM,所以我无法将它绑定到我的视图模型。

微软怎么会遗漏这个基本功能呢?是否没有简单的方法来检测 CTRL-Clicks 并将它们绑定到我的视图模型中的命令?

0 投票
3 回答
3325 浏览

wpf - 绑定到情节提要上的附加行为

我为 Storyboard 创建了一个附加的依赖属性,目的是让我能够在 Storyboard Completed 事件触发时调用 ViewModel 上的方法:

然后我尝试在 XAML 中使用它,使用绑定语法:

这失败了,但有以下例外:

System.Windows.Markup.XamlParseException 发生消息 =“无法将属性“Style”中的值转换为“System.Windows.Style”类型的对象。无法冻结此 Storyboard 时间线树以跨线程使用。对象“labelHello”中的错误标记文件“TestWpfApp;组件/window1.xaml”

有没有办法让绑定语法与情节提要的附加 ICommand 属性一起使用?

0 投票
1 回答
231 浏览

.net - .NET Workflow Foundation 中三种依赖属性的区别

在 .NET Workflow Foundation 中,存在三种依赖属性:实例属性元属性附加属性。有人可以解释一下区别和正确用法吗?谢谢。

0 投票
1 回答
2689 浏览

c# - 有没有更好的方法来自我引用类型?

我最近发现很多与在 C# 中引用泛型类相关的代码异味。我的抱怨尤其适用于那些从 DependencyObject 继承并包含 DependencyProperties 的类。

基本问题是,在声明依赖属性时,通常会引用当前类型,也称为owner。这工作得很好,通常对于简单的非泛型对象来说不是什么大问题,除非对象包含多个依赖属性,然后需要在不同的地方重构类型名称(通过重构更容易)视觉工作室)。

但我最近发现的是,当将这种繁琐的显式自引用实践与泛型的广泛使用结合起来时,代码真的开始变得丑陋。

我的问题是,是否有人知道任何技巧、技巧或合法解决方案,以减少在上述情况下需要引用具有泛型参数的完整类型名称的次数。

完全披露:我确实在 Microsoft .Connect 网站上提出了这个问题,但他们拒绝了自引用关键字的想法,但没有提供解决方法或替代解决方案。我的想法是使用一些关键字,例如OwnerOwnerClassThisType,以便泛指使用关键字的类型。