2

ビューで定義されたバインディングを介して、wpf のビューモデルで TextBox コントロールの CaretIndex プロパティの値を取得/設定することは可能ですか?

ありがとう

4

2 に答える 2

5

CaretIndexではないため、プロパティをバインドすることはできませんDependencyProperty。これは、バインディングを受け入れないCLRプロパティです。

于 2011-09-16T22:41:52.687 に答える
4

ここでの問題は、ビュー モデルを介してコントロールCaretIndexを取得する方法です。TextBoxビューモデルにバインドして直接取得する場合は、不可能です。前の回答で投稿したように、依存関係プロパティではなく CLR プロパティです。

私たちは何ができる?

そのための最善の解決策は、次の手順に従うことです。

  1. 別のクラスを介してコントロールの添付プロパティを定義します。
  2. ビューモデルでプロパティを定義し、添付プロパティをビューモデルのプロパティにバインドします
  3. 受け取った新しい値に従って、添付プロパティ変更イベントのコールバックでコントロール プロパティを更新します。

この場合でも、モデルからビューを分離します。

私の答えがお役に立てば幸いです!

于 2011-09-27T20:39:58.080 に答える