我创建一个ComboBox子类,并加入我的功能。

现在我要公开的文本框例如外部特性:

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

这是可能的,我也许没有选错了特定的属性,但我想你明白我的意思。

这可能吗?点击 我一定要单独创建的所有属性?

有帮助吗?

解决方案

这是不可能的XAML。 XAML不允许你解决使用像你描述的一个属性路径语法各个成员的子属性。 (类似的东西的可能对某些可继承属性诸如背景和字体大小,但使用一个继承机制 - 影响所有包含的控件 - 而不是寻址特定的子元素,并且不会对于TextBox.SelectedText工作反正。)

所以,是的,你需要在MyComboBox类中声明自定义属性表面的文本框,你需要从外面MyComboBox访问功能。从有利的一面,这是很好的纪律封装:请记住,未来的开发人员可能会应用自定义模板,您MyComboBox不包括一个文本框(或成员未命名文本框,或成员命名的TextBox实际上是一个使用RichTextEditor,而不是一个简单的文本框...)。明确的性能保证MyComboBox明确界定什么样的行为和状态,这样的模板需要尊重,并让模板决定如何实现,而不是被限制模板的作者总是露出一个文本框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top