我不确定提出这个问题的最佳方式(对不起,问题标题模棱两可),但基本上我想使用从数据上下文中传递的属性值转换器在 TextBox 上设置 MaxLength 属性,并将传入属性上的属性作为转换器参数。我想以一种风格来做这一切,而不是在逐个控制的基础上。这是以非样式方式执行此操作的示例:
<TextBox Text="{Binding MyPropertyName.TheirPropertyName}" MaxLength="{Binding MyPropertyName, Converter={StatocRespirceMyCoolConverter}, ConverterParameter=TheirPropertyName}" />
(如果您想知道,ThirdPropertyName 表示 MyPropertyName 类型上的一个属性,该属性具有类似 [StringMaxLength(15)] 的属性,我可以在值转换器中获取并返回该属性。)此外,是否有有什么方法可以传入 MyPropertyName 的类型而不是实例?我只需要类型来进行 StringMaxLength 属性查找。
无论如何,我怎么能以一种风格去做这样的事情呢?我已经做到了:
<Setter Property="MaxLength">
<Setter.Value>
<Binding Converter="{StaticResource textFieldMaxLengthConverter}" />
</Setter.Value>
</Setter>
但这会将整个数据上下文传递给值转换器,而不是 MyPropertyName 对象,而且我真的不知道是否可以让它解析绑定的 MyPropertyName.TheirPropertyName 部分以在绑定的 ConverterParameter 属性上传递 TheyPropertyName .
任何指导将不胜感激!