1


Dependency Property DisplayMemberPath がどのように機能するかを誰かが私に説明できるかどうか、私はさまよっていましたか? ComboBox の DisplayMemberPath のようなプロパティを持つカスタム ItemsControl を作成しようとしています。つまり、ItemsSource を設定した後、表示するプロパティを指定できるようにしたいと考えています。
現時点では、次のようなことをすると:

 <cc:MyControl ... DisplayMemberPath="MyObjectDescription" ... > 

(はい、ポイントのほかに、DisplayMemberPath をオーバーライドしました)。

アイテムのリストが表示されますが、ItemsSource の各オブジェクトに対してプロパティが保持する値ではなく、それぞれ「MyObjectDescription」が表示されます。DisplayMemberPath プロパティがどのように機能するかに関して何かが欠けているためだと思います。
皆さんありがとう。:)

4

3 に答える 3

4

DisplayMemberPath には 2 つのタイプがあります。バインディングをサポートするものと、文字列値を設定する必要があるものです。あなたの場合、私が見ることができるように、2番目のものを実装したいと考えています。これを行うには、文字列型のカスタム コントロール内にプロパティを作成し、DisplayMemberPath という名前を付けます。コンテナ内のメソッド OnInitialized をカスタム ロジックでオーバーライドします。ここで、バインディングのパスを DisplayMemeberPath で指定した文字列値に変更することで、DataContext へのバインディングのパスを操作するようコンテナに指示します。WPF は、コントロールが完全に初期化された後、レンダリングされる前に OnInitalized を呼び出します。これがさらに役立つことを願っています。

于 2013-08-28T07:10:03.513 に答える
0

私はあなたのコントロールがListBoxとListBoxItemMyControlに似ていると仮定しています。MyControlItemが作成されているときに MyControl の DisplayMemberPath にアクセスし、MyControlItemそれを使用して DataContext からデータを取得できます。

于 2013-08-28T05:50:26.413 に答える