2010-11-18 12 views
1

Xaml(またはHosted Xaml)をベースにしたC#ソリューションがあります。しかし基本的には、Xamlファイルを取得してXamlReaderにロードし、そのFrameworkElementをUserControlにポップします。データバインディングを処理する機能が必要です。これを処理するViewModelがあります。しかし、新しく作成したFrameworkElementにDataContextを挿入してコードを挿入することはできますが、Blendで簡単に作業し、バインド可能なプロパティのリストを使用する場合は、プロパティXamlにDataContextを設定する必要があります(ブレンドでXamlに追加されていない場合)。私は、コードで既にこれをやっているので、これを行う必要はありません。MVVM:Xaml for BlendサポートにDataContextを追加しないようにする方法

問題を解決する方法はありますか?

私はこれを何とかapp.xamlを通してやっていると思っていましたが、問題は画面によって異なり、表示されるときには異なるコンテキストになります動的にコンテキストを変更する)、私はあなたが複数のデータコンテキストで読み込むことができないと確信しています。

おそらく、これを分割するより良い方法があります。 MainWindow.xamlメインWPFアプリケーションによってMainWindow.xaml上に配置される別個のアセンブリで(メインアプリケーション)

  • ユーザーコントロール(と

    • A WPFアプリケーション - :私たちのソリューションは、以下を有します
    • このユーザーコントロールは、ビューモデルにバインドされています。
    • メインアプリケーションは、ステートマシンのビルド時にDataContextを設定します。
    • すべてのLoose Xamlファイルは、メインアプリケーションに保持されています。

    基本的にステートマシンが画面を表示するタイミングによって、異なるデータコンテキストが表示されます。ステートマシンはデータコンテキストのプッシュを処理し、それらの画面は正しいコンテキストで使用される場合にのみ機能します。したがって、Xamlでデータコンテキストを設定する必要はありません。それはステートマシンによって行われました。

    しかし、私たちが行くように、私たちはかなり学習しているので、ルースXAML周りTinterwebに多くの情報を見つけることができませんでした...事前に

    ありがとう!

  • 答えて

    1

    d:DataContext = {d:DesignInstance ...}を試しましたか? これは、デザイン時のみ、BlendとVSのDataContextを定義することを可能にします。

    +0

    こんにちはElad - うん、それは完璧だ - 仕事をする!ありがとう! – Slippy

    関連する問題