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

c# - 将附加属性的 XML 文档注释放在哪里?

假设我有一个这样定义的附加属性:

我可以为属性标识符 ( MyPropertyProperty) 和访问器 ( GetMyPropertyand SetMyProperty) 编写文档,但我不知道将MyClass.MyProperty 附加属性的文档放在哪里,因为它不是实际的代码元素。

MSDN 库包含此类文档(参见示例Grid.Row),因此它必须是可能的......

我应该将附加属性的 XML 文档注释放在哪里?

0 投票
5 回答
36712 浏览

.net - WPF中的依赖属性和附加属性有什么区别?

WPF 中的(自定义)依赖属性和附加属性有什么区别?各有什么用途?实现通常有何不同?

0 投票
3 回答
7845 浏览

c# - 减少 MVVM WPF 应用程序中附加属性、命令等的样板代码?

我正在开发一个 WPF MVVM 应用程序。我注意到的是,我必须编写大量的样板代码来声明命令(通过 WPF 团队的 MVVM 工具包中的 DelegateCommands)、附加属性和附加行为。是否有任何策略可以减少我必须编写的样板代码量?

谢谢!

0 投票
1 回答
5871 浏览

c# - WPF - 处理自定义控件上的自定义附加事件

我有一个这样声明的路由事件(名称已更改以保护无辜者):

很标准的东西。在 XAML 中,我有一个包含单个自定义控件的 DataTemplate。我正在尝试将此事件(以及其他一些附加属性)附加到控件:

这无法产生预期的结果。具体来说,在调用为 DragComplete 事件调用 RaiseEvent() 的代码时,从不调用处理程序。事实上,在此 XAML 文件中的其他位置连接的任何其他自定义路由事件的处理程序也不是。

我尝试更改路由事件的名称,并尝试将数据模板从一个带有 DataType 的模板切换到一个带有 x:Key 的模板。这在行为上没有产生明显的变化。

但是,如果我将 My:CustomControl 更改为任何内置 WPF 控件(例如 TextBlock),则事件将完全按照我的预期触发。同样,如果我用我的项目中的任何其他自定义 UserControl 子类替换我的自定义控件,则行为将恢复为损坏的、无事件似乎无法处理的状态。

这对我来说没有多大意义。我需要做一些具体的事情来让这个场景起作用吗?好像应该没关系。我想有可能我在所有自定义控件中所做的特定事情会导致事件处理中断,但到目前为止我还没有看到我尝试过的三个或四个自定义控件中有任何共同点。

0 投票
1 回答
8372 浏览

wpf - 类型列表的附加属性

我想创建一个可以与此语法一起使用的附加属性:

这是我这样做的尝试:

但是,这会在解析时导致异常——System.ArgumentException:TabItem 不是属性“DisplayFilter”的有效值。那么如何配置我的附加属性以便我可以使用所需的 XAML 语法?

0 投票
1 回答
215 浏览

wpf - 附加属性未返回值

我为我的自定义面板声明了一个附加属性:

如果我将面板定义为:

但是,如果我将此面板用作ItemsPanelTemplatea ListBox,它总是返回默认值ArrangeOverride

我还注意到,当在 a 中使用自定义包装面板时ListBox,它会发送double.PositiveInfiniteArrange 方法,因此 Arrange 永远无法设置值。单独使用时同样有效

谢谢

0 投票
1 回答
846 浏览

c# - 我已经创建了一个附加属性,现在我该如何使用它?

我正在尝试确定附加行为是否是我们在为应用程序中的表单构建控件时需要的东西。

因此,我不仅想知道如何创建附加行为,还想查看它们用于解决问题的真实实例。我使用这篇 MSDN 文章以我认为有用的方式创建了一个带有附加属性的 UserControl,即一个堆栈面板,其中某些子元素要么突出显示,要么不突出显示。

这个例子运行良好,但是我在哪里放置逻辑来突出或不突出元素的突出显示(例如更改背景颜色) ?

XAML:

代码背后:

0 投票
1 回答
1449 浏览

wpf - 获取或设置附加属性的访问器未在数据绑定上触发?WPF

我有一个自定义的附加属性,但访问器永远不会在数据绑定上被访问。这些访问器是否意味着每次附加属性更改时都可以访问?

XAML:

0 投票
3 回答
988 浏览

c# - 如何序列化附加属性

我正在使用复合应用程序库编写 .NET3.5、WPF 应用程序。应用程序分为几个模块。

在基础设施模块中,我定义了 NetworkNode 对象。Network 模块管理 NetworkNodes 的集合并使用 XmlSerializer 来存储/加载该集合。到目前为止一切正常。

但我还有其他模块,例如 NodeModule。如果在 Network 模块中选择了 NetworkNode,则使用 E​​ventAggregator 将事件发布到其他模块。这些模块可以使用附加属性将各种信息附加到 NetworkNode。

问题是 NetworkModule 不知道其他模块,因此这些属性没有序列化。是否可以以某种方式列出和序列化附加到对象的所有属性?还是我必须改变概念并使用附加属性以外的其他东西?

问候

0 投票
2 回答
1151 浏览

silverlight-3.0 - Silverlight DataGridColumn AttachedProperties

我正在尝试在 Silverlight 3.0AttachedProperty中为 a创建一个,DataGridColumn但我遇到了一些问题。

这是附加属性:

如您所见,它非常简单,我正在尝试克服 DataGridColumn 类中的 Header 属性无法绑定的限制。

此 XAML 按预期工作...

但是,此 XAML 会引发错误...(具体而言:{System.Windows.Markup.XamlParseException: AG_E_PARSER_PROPERTY_NOT_FOUND [Line: 224 Position: 112] at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) ....} )

只是为了实验,我将此属性(使用上面的绑定语法)附加到 aDataGrid并检查方法DataGridColumnHelper.Header中的属性OnHeaderPropertyChanged并且值正确(并且没有引发异常)

据我了解,AttachedProperty 附加到的对象必须是DependencyProperty. 透过 Reflector 看,DataGridColumn(从中DataGridTextColumn派生)派生自DependencyProperty.

有人可以对此有所了解吗?我正在尝试本地化我们的应用程序,但我在使用 DataGrid 时遇到了问题。我确信我可以在代码隐藏中做到这一点,但我试图避免这种情况。