問題タブ [viewmodellocator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5961 参照

wpf - 「ViewModelLocator」例外という名前のリソースが見つかりません

ViewModelLocator を App.xaml のリソースとして宣言して使用しようとしています。次のような非常に単純なクラスです。

App.xaml ファイルは次のとおりです。

App.xaml.cs は次のとおりです。

ShellView.xaml は以下のとおりです。

Visual Studio デザイナーで正しいタイトルを確認できますが、アプリを実行すると XamlParseException: 'Provide value on 'System.Windows.StaticResourceExtension' throw an exception.' が発生します。行番号 '11' および行位置 '9'。

内部例外には{"'ViewModelLocator' という名前のリソースが見つかりません。リソース名は大文字と小文字が区別されます。"}

何か足りないのですか?

0 投票する
2 に答える
1832 参照

wpf - viewmodellocator の使用時にモデルを viewmodel に渡す

ViewModelLocator の概念を理解しようとしています (MVVM Light では、どの MVVM フレームワークが使用されているかに関係なく、ViewModelLocator の一般的な概念に問題が適用されます)。それを使用する。

私が理解しているように、ビューはロケーターのシングルトン インスタンスのプロパティの 1 つをデータ コンテキストとして使用します。ロケーターはこれらのさまざまなプロパティを定義し、それぞれに適切なビューモデル インスタンスを返します。

それはすべて問題ありませんが、これらのビューモデルに、ビューが提示するはずのモデルデータを実際にどのように入力するかを理解するのに苦労しています.

たとえば、従業員のリストを表示するビューがあるとします。EmployeesView と EmployeesViewModel を作成できます。ViewModelLocator で、この EmployeesViewModel を返すプロパティを作成できます。

ここで、viewmodel には従業員のリストが必要なので、すべての従業員を返す何らかのデータサービスを作成し、それを ViewModelLocator のコンストラクターの Servicelocator に登録します。

EmployeesView をインスタンス化すると、EmployeesViewModel がインスタンス化され、すべての従業員を返すデータサービスが挿入されます。

ただし、EmployeesView でクリックしたばかりの特定の従業員の詳細を表示したいと考えています。この従業員はおそらく、データベースなどから取得するための何らかの ID を持っています。

EmployeeDetailsView と EmployeeDetailsViewModel を作成し、ViewModelLocator にプロパティを追加できます。

そしておそらく、ViewModelLocator のコンストラクターにある種のデータサービスを登録します。

しかし、どの従業員の詳細を表示する必要があるかをデータサービスまたはビューモデルに伝えるにはどうすればよいでしょうか? 従業員 ID はどこに渡すのですか?

私はこれをすべて間違って見ていますか?何か良い例を知っている人はいますか?私が見つけることができるすべての例は、各ビューモデルの同じ単一のインスタンスを返すだけです。

0 投票する
1 に答える
685 参照

wpf - ViewModelLocator を使用して単体テストを行う方法

Autofac を使用してカスタム ビュー モデル ロケーターを作成し、それらのほとんどが通常使用されるように、App.xaml を介して通常どおりに設定しました。私の問題は、今ユニットをテストするにはどうすればよいですか? ビューを初期化するメソッドをテストしようとするたびにエラーが発生します

私のapp.xamlでは:

各ビューで:

単体テスト エラー:

単体テストを実行すると、実際のアプリのインスタンスが実際に存在しない理由がわかりました。この問題を回避する良い方法は何ですか?

ViewModelLocator コード:

0 投票する
1 に答える
927 参照

c# - MVVM Light - ViewModel の再利用

Windows Phone 8 で Pivot Control を使用しており、MVVM Light を使用しています。

各 PivotItem のコンテンツとなる UserControl と、UserControl が使用する ViewModel を作成しました。

例えば:

通常、私の UserControl コンストラクターには次のようなものがあります (これは良い方法ではないと思いますか?):

この ViewModel は、位置キーに基づいてデータベースからデータをフェッチします。私の質問は、そのキーを MyViewModel に渡し、MyViewModel シングルトンを作成しないようにするにはどうすればよいですか?

0 投票する
1 に答える
327 参照

c# - 別の MVVMLight プロジェクト内の MVVMLight

私は MVVMLight / WPF プロジェクトに取り組んでおり、複数のビューとビューモデルを含む機能のチャンクを追加する必要があります。これと同じ機能が近い将来他のプロジェクトで使用されることを知っているので、この機能を独自のプロジェクトにして、必要に応じてほとんどまたはまったく変更せずに他のソリューションに追加できるようにしたいと考えています。

まず、2 つ目の MVVMLight プロジェクト (ベータ版) を追加し、標準の MainWindow.xaml ファイルと MainViewModel.cs ファイルを削除して、単純な UserControl と関連するビュー モデルを作成しました。

元のプロジェクト (アルファ) への参照としてベータを追加し、ビューをスタック パネルに次のように挿入してビューを表示することができます。

これを行うと、すべてが適切に機能するように見えます。私が抱えている問題は、プロパティを TestViewModel から TestView にバインドしようとしたときです。

TestView で、これを行うと:

TestView は実行時に正しく表示されます。しかし、次のように TextBlock をプロパティにバインドすると:

メッセージは表示されず、ベータ版のロケーターは無視されているように見え (データコンテキストがバインドされていません)、Snoop から次のエラーが表示されます。

これは、Test_VM と WelcomeMessage のバインディングが Beta Locator ではなく Alpha Locator を介して検出されようとしていることを意味していると思います。各プロジェクトで MVVMLight プロジェクトを開始するときにデフォルトで作成される ViewModelLocator を使用しています。

2 番目の「ロケータ」を使用することは可能ですか? もしそうなら、それを機能させるために何をする必要がありますか?

0 投票する
0 に答える
137 参照

viewmodel - Viewmodellocator 登録解除 Viewmodels

私はすでに一日中解決策を探しています。私はMVVMの初心者で、次の問題があります。これは私のviewmodelLocatorのコードです:

A からデータを更新した後、B を開きたいのですが、次のようにします。

これは機能しますが、B は A からのデータを使用し、更新されたデータはプログラムを閉じて再度開くまで表示されません。Viewmodellocator とメッセージに関係があることを読みましたが、私はこれにかなり慣れていないため、「クリーンアップ」を行う必要がある方法や場所が正確にはわかりません。

誰でもこれで私を助けてもらえますか? 前もって感謝します。

0 投票する
0 に答える
2855 参照

windows-phone-8 - 「IXXXX は既に登録されています」 - MVVM-Light

私はmvvm-lightWP8アプリケーションに使用しています。

エラーが発生し続けIXXXXX is already registeredます。このソリューションを使用すると、http://developingux.com/2012/06/10/how-to-fix-error-design-time-data-in-blend-with-mvvm-ライト/

エラーは消えましたが、Visual Studio と Blend のどちらにもデザイン データが表示されません。

私のview-model-locator(IContentServiceエラーを発生させず、のみIFeedAPI):

以下のように IoC コンテナーを使用していない場合、すべてがうまく機能します (エラーはなく、完全に設計されたデータ)。

何か案は??