繁体   English   中英

如何公开XAML属性?

[英]How to expose xaml properties?

我创建了一个ComboBox子类并添加了我的功能。

现在,我想公开TextBox的外部属性,例如:

<a:MyComboBox SpellCheck.IsEnabled="True" TextBox.SelectedText="{Binding X}" />

这可能吗,我可能没有选择错误的特定属性,但我想您理解我的意思。

这可能吗?
我必须单独创建所有属性吗?

在XAML中这是不可能的。 XAML不允许您使用所描述的属性路径语法来处理单个成员的子属性。 (类似的东西可能某些遗传特性,如背景和字体大小,但使用的继承机制-影响所有包含的控件-而非解决具体的子元素,并不会为TextBox.SelectedText工作反正。 )

因此,是的,您将需要在MyComboBox类上声明自定义属性,以显示需要从MyComboBox外部访问的TextBox的功能。 从好的方面来说,这是封装的良好纪律:请记住,将来的开发人员可能会将自定义模板应用于不包含TextBox的MyComboBox(或者该成员未命名为TextBox,或者该名为TextBox的成员实际上是一个RichTextEditor而不是普通的TextBox ...)。 显式属性可确保MyComboBox清楚定义此类模板需要遵循的行为和状态,并让模板决定如何实现该行为和状态,而不是始终受限于模板的作者以公开TextBox。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM