私のビューモデルとモデルには、署名付きのメソッドがありbool IsPropertyReadOnly(string propertyName)
ます。このメソッドは、現在ログインしているユーザーがプロパティ値を編集できるかどうかを決定します。少数のユーザーはプロパティ値を編集でき、他のほとんどのユーザーは読み取り専用アクセス権を持ちます。
モデルの各プロパティの読み取り専用ステータスを返すプロパティを作成する代わりに、の結果をプロパティにバインドしたいと考えてIsPropertyReadOny
いTextBox.IsReadOnly
ます。
これが私が構文を想像する方法です:
<TextBox Text="{Binding Address, Mode=TwoWay}"
IsReadOnly="{Binding MethodName=IsPropertyReadOnly MethodParameter=Address}"
/>
にはDataContext
ビューモデルが含まれているため、基本的にIsReadOnly
呼び出しの結果にバインドする必要があります((Class)this.DataContext).IsPropertyReadOnly("Address")
の使用については多くのドキュメントがありObjectDataProvider
ますが、オブジェクト データ プロバイダーは新しいオブジェクト インスタンスを作成しますが、これは私が望むものではありません。さらに、既存のインスタンスを使用するには、コード ビハインドで割り当てを行う必要があります。繰り返しますが、私がやりたいことではありません。
私の調査によると、私のニーズを継承するBinding
かMarkupExtension
、より適したソリューションのようです。
どんな助けでも大歓迎です。