問題タブ [prism-6]
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# - Prism 6 にすべてのモジュールがロードされた後、ViewModel でシェルを初期化する
私のShell / MainWindowのViewModel( 経由で設定)は、 ConfigurationModuleCatalogAutoWireViewModel="True"
を使用して、起動時にモジュールにロードされる依存関係を要求します。
シェルはモジュールの前に初期化されるため、DI コンテナーは明らかにそれを解決できず、アプリケーションがクラッシュします。
この投稿の 2 つのアプローチは既に試しましたが、どちらもうまくいきませんでした。
私はこのようにしてみました:
使用法
モジュールのカウントを開始すると、同じ理由でアプリケーションがクラッシュします。
上記のアプローチが私の目的に合わない場合、どうすればその問題を解決できますか?
ありがとう!
xamarin.forms - xamarin プリズムフォームのプロパティが変更され、起動しない
Prism.forms と propertychanged に問題があります。
以下のコードを示すsettingsmodel、settingsviewmodel、およびsettingspageがあります。
設定モデル
設定ViewModel
および SettingsPage XAML
ユーザーが IsEnabled プロパティよりも URL を入力すると true になり、Url が空の場合は IsEnabled プロパティよりも false になり、IsEnabled が false の場合はボタンを保存し、ボタンは有効になりません。
私の主な問題は、エントリの URL を書きますが、propertychanged イベントが発生しないことです。
どうすればこれを解決できますか?
ありがとうございました。
c# - WPF Prism アプリケーションでカスタム モーダル ダイアログを使用すると、「このオブジェクトにパラメーターなしのコンストラクターが定義されていません」というエラーが表示される
私の Prism 6 WPF MVVM アプリケーションでは、ユーザーのログインにカスタム モーダル ダイアログを使用しています。このダイアログは、(XAML で) 次のデザイン時エラーを生成します: 'このオブジェクトに対して定義されたパラメーターなしのコンストラクターはありません'。以下は、ダイアログの XAML マークアップです。
(ViewModel からの) ダイアログのコンストラクターは、以下を参照してください。
上記のダイアログの XAML からわかるように、動作 (PasswordBoxBindingBehavior) を使用して、PasswordBox のデータバインディングを可能にします。以下は PasswordBoxBindingBehavior クラスの定義です。
このダイアログは、アプリケーションのメイン ウィンドウ (シェル) から呼び出します。以下は XAML マークアップ (ダイアログに関連) です。このマークアップは、アプリケーションのメイン ウィンドウ (シェル) マークアップからのものです。参照してください:
そして、このマークアップの行
次のエラーがあります:「このオブジェクトにはパラメーターなしのコンストラクターが定義されていません」。ダイアログの ViewModel に 2 番目のコンストラクター (パラメーターなし) を追加しようとしましたが、エラーは解消されません。これは設計時のエラーにすぎませんが、それでも排除する必要があります。このエラーを修正するにはどうすればよいですか?
c# - モデルでプロパティが変更されたときにテキストブロックが更新されない
テキストブロックが更新されていないので、モデルから値を更新してください。ViewModel で textblock を更新すると動作するため、バインディングが正しいように見えます。問題はモデルで更新する方法にあると思いますが、値を前後に渡しているため、observableCollection のみが更新される理由がわかりません。それが適切な MVVM 戦略であるとは確信していません。
XAML 部分:
ViewModel 部分:
モデル部分:
デバッガーを実行すると、P4LabelBatteryViewModel.FilesProcessedBlck が変更されていることがわかりますが、XAML は更新されていません。
wpf - Unity に登録すると、Prism がモジュールを見つけられなくなるのはなぜですか?
私のサブクラスでUnityBootstrapper
は、クラスのConfigureContainer()
メソッドに型を登録します。この質問では、インターフェイス タイプと実装クラスは関係ありません。それらは存在し、解決できます。関連するのは、インターフェイスと型が、ロードするモジュールを含む同じアセンブリ ( Cと呼びましょう) で定義されていることです。
アセンブリAとBに他の 2 つのモジュールがあります。これらのモジュールはDirectoryModuleCatalog
、ブートストラッパーのInitializeModules()
メソッドで使用されることによって検出されます。アセンブリCのモジュールはそうではありません。
問題のある登録を削除すると、Cが見つかりました。インターフェイスとターゲット クラスを別のアセンブリに移動し、登録を再度追加すると、Cが再び検出されます。
登録をブートストラップからCのモジュールのコンストラクター内に移動し、注入された を使用してそこに登録すると、モジュールが見つかり、登録が成功します。IUnityContainer
そのため、何らかの形で登録の順序と場所がモジュールのロードに影響を与えており、例外なく静かに行っているようです。今のところ、「そのモジュールのコンストラクターでモジュールのアセンブリーから型を登録する」というアプローチで生活していますが、これは回避策のように感じます。
これが「やり方」ですか?これは既知の制限またはバグですか?
wpf - Autofacを使用してPrismのモジュールから内部依存関係を追加するには?
http://www.milosev.com/98-c/wpf/373-autofac-and-prism-together#dependencyInjectionの手順を使用して、モジュールの依存関係をセットアップしようとしました (たとえば、ViewModel にはいくつかの IServices を構築する必要があります)。私が使用していない唯一のものは MEF のことですが、私が理解している限り、Unity または Autofac に代わるものです。
モジュールに固有の型の登録を配置する適切な場所が見つかりませんでした。一時的に、モジュールクラスから呼び出される静的メソッドを使用しますBootstrapper's
ConfigureContainerBuilder()
しかし、モジュールが初期化される前に呼び出されます。モジュール登録時にこれらのタイプを追加する方法はありますか? または、Autofac がコンテナーを構築する方法が原因で、新しい型を登録できませんか?
c# - モデルからビューモデルを更新するプリズム
私は自分の質問を間違っており、それが原因でコードが悪いと思います。私がやりたいのは、Model-Controller(?)-ViewModel-View をもっと持つことです。ここで、コントローラーに複数の ViewModel で使用されるコードを含めることができるため、複数回記述する必要はありません。私が把握するのに苦労している部分は、コントローラー クラスのループ中に ViewModel を更新する方法です。コントローラーには、ViewModel のパラメーターを更新するために使用したいループ カウンターがありますが、ViewModel に戻るまで更新されません。
Prism を使用してモデルから Viewmodel を更新する方法を見つけようとしています。私は間違っているかもしれませんが、クラスをbindablebaseにして、INotifyPropertyChangedを使用するのではなく、変更されたときにビューモデルを自動的に更新できると思いました。
いくつかのディレクトリをループしていくつかのファイルを追跡する方法があります。私は BindableBase を使用しているので、ビューモデルをリアルタイムで更新するフィールドをループ更新したいと思います。それを使用して、モデルの更新についてビューモデルに通知できるはずです。現在、このタスクを達成する方法について少し迷っているため、コードは ViewModel を自動的に更新しません。
ビューモデル
モデル:
c# - INavigation が Xamarin.Forms の Prism で動作しない
xamarinフォームのプリズムは初めてです。xamarin でプリズムを実装するために、3 つのパッケージをインストールしました。
- プリズムコア
- プリズムフォーム
- Prism.Unity.フォーム
次のように PrismApplication から App を継承します。
次のように、コード ビハインド ファイルから ViewModel に View をバインドします。
このために、私はこのコードを見つけました。このコードは App.xaml.cs にあります。
これが私のViewModelコードです:
削除するとうまくいきINavigationService
ます。
しかし、それはエラーを示しています:
未処理の例外:
例外発生時のコンテナは次のとおりでした。