MVVMコントロール内のパッケージを表す項目のリストがあります。WPFでツールチップのViewModelを動的に生成するMVVM
ツールチップにカーソルを合わせると、データベースに移動して詳細情報を表示する必要があります。簡単にするために「PackageDetails」と呼ぶだけです。私はViewModelクラスでデータベースの読み込みを処理する方法を知っていますが、インスタンス化するタイミングを把握することができません。
アプローチ1) 'Package'オブジェクトに 'lazy-load'プロパティがあるので、ツールチップがトリガされたときにviewmodelが作成され、すぐにデータベースにアクセスします。 このアプローチは理想的ではありません。それぞれの 'Package'オブジェクトは真のビューモデルではなく、もともとWCFオブジェクトから来たからです。
アプローチ2)このJosh Smith blog entryの説明に従ってコンバータを使用してください。彼の例はコンバータにうまく収まるようですが、実際には私の状況にはうまくいかないと思います。
アプローチ3)何とかXAMLでビューモデルを作成しますが、これは悪い考えです。
MVVM を使用してツールチップのビューモデルを動的に生成するには、どのような方法が適していますか?
私はいくつかのケースではこのような何かを行っているが、ここで私はかなり深くネストされたオブジェクト持って感謝:オーダー>パッケージ>のOrderItemsなどを、ちょうどツールチップのためにそれを台無しにあまりにも多くを望んでいませんでした –
あなたの2番目の好みは何でしょうか。私は実際にこのインスタンスでは適切だと思われるコンバータを使用しましたが、それでもやや間違って感じます –
WCFが部分クラスとしてすべてのモデルを作成するので、私の2番目の設定は部分クラスです。部分的なクラスに "ToolTip"文字列プロパティを追加し、それをxamlのコントロールのツールチップにバインドすることができます。あなたのツールチップのコンバータが間違っていると私は同意します – Anton