問題タブ [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.
c# - 不明なタイプの ViewModelLocator
私はこれでレンガの壁にぶつかったようです。
Windows Phone アプリをユニバーサル アプリに変換するときに、以前に行ったように mvvm-light を実装しました。
ただし、App.xaml で ViewModelLocator が見つからないという問題が発生します。結果として、ローランのこのブログ投稿を見て、運がなくてもガイダンスを得ることができました。( http://blog.galasoft.ch/posts/2014/04/building-a-universal-application-for-windows-phone-8-1-and-windows-8-1-with-mvvm-light/ )
mvvm-light の最新バージョン (4.4.32.1) を使用しています。
行をコメントアウトする
と、<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
すべて問題なくビルドおよび実行されます。その行のコメントを外すとすぐに、次のエラーが表示されます: 不明な型 'ViewModelLocator' が XML 名前空間 'typename desclaration' にあります
また、突然次のエラーが発生しました: ファイルまたはアセンブリ 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=619affe60327fc48' またはその依存関係の 1 つを読み込めませんでした。アセンブリ バージョンには、要求のものと一致しない公開キー トークンがあります。
プロジェクトでは、NuGet のインストールに従って Microsoft.Practices.ServiceLocation の v 1.3 を参照しています...
c# - Windows Phone 8 : MVVM を使用して各ピボット アイテムのコンテンツを読み込む方法は?
アプリでピボット コントロールを使用しています。各ピボット アイテムのコンテンツをリモート URL から (つまり、Web サービスを使用して) ロードしたいと考えています。
例 - レシピの詳細なピボット ページがあります。3 つのピボット アイテム (情報、レビュー、ギャラリー) があり、システム トレイに進行状況インジケーターがあります。
各ピボット アイテムのデータを 1 回ロードしたい。つまり、ユーザーが以前にロードされたピボット アイテムにスワイプした場合、そのピボット アイテムに対して再度 Web リクエストを行うべきではなく、その場合、プログレス インジケーターは非表示にする必要があります。
ピボット アイテムごとに異なる ViewModel を使用するか、すべてに対して単一の MainViewModel を使用する必要がありますか?
Pivot ページでプログレス インジケータの可視性を管理するにはどうすればよいですか?
ピボット項目ごとに UserControl を作成する必要がありますか?
vb.net - PRISM 5: VB.NET の ViewModelLocator、View で IView を実装できない
現在、PRISM ViewModelLocator を使用して、MVVM パターンを使用して VB.NET で PRISM 5 アプリケーションを構築しています。PRISM ViewmodelLocator では、すべてのビューで Microsoft.Practises.Prism.Mvvm.IView インターフェイスを実装する必要があります。このインターフェイスには、DataContext というプロパティが 1 つだけ含まれています。
View (FrameworkElement) には既にプロパティ DataContext があるため、C# では、View クラス名の後ろに ": IView" を追加するだけで十分であり、DataContext プロパティの新しい実装 (暗黙的なインターフェイスの実装) を提供する必要はありません。魔法のように、ViewModel は Datacontext プロパティを介して View に自動的に接続されます。
VB.NET では、暗黙的なインターフェイスの実装を行うことができないため、これは不可能です。クラスの先頭に「Implements IView」を追加すると、VB は DataContext プロパティの実装を提供するように指示します。FrameworkElement には既に Datacontext プロパティがあるため、VB は Datacontext1 プロパティの実装を自動的に追加します。もちろん、ViewModel を View に接続しても機能しません。以下は私のコードです:
意見
ビューモデル
これに関するベストプラクティスはありますか?
これまでのところ、動作しているように見えるのは、ビューのコンストラクターに次の行を追加することだけです。
しかし、これは非常に汚い解決策だと思います。
c# - 閉じたウィンドウを再び開くには?
ShutdownMode
アプリを切り替えて、OnExplicitShutdown
ウィンドウを閉じてもアプリがまだ機能していて、次のようにウィンドウを再度開いてみます。
しかし、次のエラーがあります:Set property '...ViewModelLocator.AutoWireViewModel' threw an exception.
そして、次のとおりInnerException
です:'AutoWireViewModel' property was already registered by 'ViewModelLocator'
これを修正する方法はありますか?
ViewModelLocator
から使っていますMicrosoft.Prism
c# - XML 名前空間 'clr-namespace:namespaceblabla;assembly=blabla' の不明な型 'ViewModelLocator'
私は Windows Phone 8.1 プロジェクトを構築しており、MVVM Light Libraries のみのライブラリを使用しています。後で Windows ストア プロジェクトに使用できるように、ViewModel を保持する PCL プロジェクトを作成しました。
私はガイドに従って行きましたhttp://blog.galasoft.ch/posts/2014/04/building-a-universal-application-for-windows-phone-8-1-and-windows-8-1-with-mvvm -ライト/
しかし、タイトルにエラーが表示されますか?
私のApp.xaml
Windows Phone プロジェクトで Roadsmart.Lib を参照しました。
私のLibプロジェクトのプロパティ
ただし、Blend は ViewModel を見つけることができますか?
しかし、私は構築、実行できません。私も掃除してみました。
誰かが私が間違っていることの手がかりを持っていますか?
前もって感謝します
c# - MVVM ライト アプリケーション - ViewModel を適切にクリーンアップする方法
私は、1つのウィンドウと、MVVM Lightからのメッセージを使用してrelayCommandsで互いに置き換えているいくつかのuserControlsで構成されるWPFのクックブックウィンドウアプリケーションに取り組んでいます。
アプリケーションは、entityFramework から生成された DB で動作します。ファイルの最初の実行以外の後に発生する問題は、プログラムが次のような多くの警告とエラーを表示することです。
ViewModelLocator には次のものがあります。
また、userControls を切り替えるために使用しているメッセージは、次のような ViewModels の新しいインスタンスを作成しています。
ViewModel をいじってシングルトンにし、システム内に単一のコピーしか存在しないようにしましたが、SimpleIoc には登録用のパブリック コンストラクターが必要です。また、それが私の問題に役立つかどうかもわかりません。また、言いませんでしたが、ViewModelLocator は xaml でのみ使用されるため、クリーンアップするためのインスタンスすらありません。(使い方が悪いのかもしれませんが、使い方がわかりません)
問題は、私が言及した多くの場所で作成され、それらのいくつかがおそらく *.mdf ファイルを保持しているため、すべての ViewModel をクリーンアップする方法と場所がわからないことです。
c# - 依存性が注入されたコンストラクターでクラスを登録する方法は? (SimpleIoC)
プロジェクトで MVVM Light を使用していますが、コンストラクターでパラメーターを受け取る ViewModelLocator クラスに Viewmodel クラスを登録する方法がわかりません。
IoCのドキュメントを調べましたが、依存関係が挿入されたコンストラクター (つまり、パラメーターを取るクラス) を使用してクラスを登録することに関連するものは何も表示されません。
登録したいクラスでは、コンストラクターは次のようなパラメーターでリストを受け取ります。
しかし、ViewModel クラスへのナビゲーションを実行すると、ActivationException が発生します。詳細は次のとおりです。
「Microsoft.Practices.ServiceLocation.ActivationException は、ユーザー コード HResult=-2146233088 によって処理されませんでした: 登録できません: 複数のコンストラクターが ViewSubjectGradeViewModel に見つかりましたが、PreferredConstructor でマークされたコンストラクターはありませんでした。ソース = GalaSoft.MvvmLight.Extras StackTrace: at GalaSoft.MvvmLight.Ioc.SimpleIoc .GetPreferredConstructorInfo(IEnumerable`1 constructorInfos, Type resolveTo) at GalaSoft.MvvmLight.Ioc.SimpleIoc.GetConstructorInfo(Type serviceType) at GalaSoft.MvvmLight.Ioc.SimpleIoc.Register[TClass](Boolean createInstanceImmediately) at GalaSoft.MvvmLight.Ioc.SimpleIoc .RegisterTClass at LC_Points.ViewModel.ViewModelLocator..ctor() at LC_Points.LC_Points_WindowsPhone_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_ViewModelLocator() at LC_Points.LC_Points_WindowsPhone_XamlTypeInfo.XamlUserType.ActivateInstance() InnerException: "
このエラーを解決して「PreferredConstructor」を指定する方法を知っている人はいますか?
エラー自体は、ViewModel クラスを登録する行でスローされます。
これは、VM の登録が定義されている私の ViewModelLocator クラスです。