この質問をする最善の方法はわかりませんが (あいまいな質問タイトルで申し訳ありません)、基本的には、データ コンテキストからプロパティに渡される値コンバーターを使用して、TextBox に MaxLength プロパティを設定したいと思います。渡されたプロパティのプロパティをコンバータ パラメータとして指定します。コントロールごとではなく、スタイルでこれらすべてを行いたいと思います。これを非スタイルの方法で行う例を次に示します。
<TextBox Text="{Binding MyPropertyName.TheirPropertyName}" MaxLength="{Binding MyPropertyName, Converter={StatocRespirceMyCoolConverter}, ConverterParameter=TheirPropertyName}" />
(ご参考までに、TheirPropertyName は [StringMaxLength(15)] のような属性を持つ MyPropertyName の型のプロパティを表し、値コンバーター内で取得して返すことができます。)インスタンスではなく MyPropertyName のタイプを渡す方法はありますか? StringMaxLength 属性のルックアップを行うための型だけが必要です。
とにかく、どうすればこのようなことをスタイルで行うことができますか? 私は次のようになりました:
<Setter Property="MaxLength">
<Setter.Value>
<Binding Converter="{StaticResource textFieldMaxLengthConverter}" />
</Setter.Value>
</Setter>
しかし、それは MyPropertyName オブジェクトとは対照的に、全体的なデータコンテキストを値コンバーターに渡します。バインディングの MyPropertyName.TheirPropertyName 部分を解析して、バインディングの ConverterParameter 属性で theirPropertyName を渡すことができるかどうかは本当にわかりません.
どんなガイダンスも本当に感謝しています!