我不知道问这个问题的最佳方式(对于不明确的问题标题抱歉),但基本上我想设置一个TextBox的MaxLength属性使用一个值转换器,它从数据上下文中传递属性,并将传入属性的属性作为转换器参数。我想以一种风格去做所有这些,而不是一个控制一个控制的基础。下面是一个非风格的方式这样做的一个示例:WPF绑定到另一个属性的风格绑定
<TextBox Text="{Binding MyPropertyName.TheirPropertyName}" MaxLength="{Binding MyPropertyName, Converter={StatocRespirceMyCoolConverter}, ConverterParameter=TheirPropertyName}" />
(在你想知道的情况下,TheirPropertyName表示在具有像一个属性类型MyPropertyName的属性[StringMaxLength(15)],其我可以到达并返回值转换器。) 此外,有没有什么办法可以传递MyPropertyName类型而不是实例?我只需要该类型来执行StringMaxLength属性查找。
无论如何,我怎么能在风格上做这样的事情呢?据我已经得到了:
<Setter Property="MaxLength">
<Setter.Value>
<Binding Converter="{StaticResource textFieldMaxLengthConverter}" />
</Setter.Value>
</Setter>
但是,经过整体的datacontext中的值转换器,而不是在MyPropertyName对象,我真的不知道,如果我可以把它解析MyPropertyName.TheirPropertyName绑定的一部分在绑定的ConverterParameter属性上传递TheirPropertyName。
任何指导将非常感激!
+1 ...感谢分享!你能发布你的ValueConverter的实际实现吗? – Brent 2011-09-05 19:47:13
嗨布伦特。对不起,当我问这个问题时,我曾在一位前雇主那里工作过,因为我已经不在那里了,所以我不能真正查看我在使用这个工具。我猜我可能使用了boundPropertyName字符串中的值,并对此进行了一些反思,看看是否将StringMaxLengthAttribute应用于该属性,并将该属性的值从该属性中提取出来(如果存在)。 – Jordan0Day 2011-09-06 19:27:59