問題タブ [catel]
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.
catel - ネストされたコントロールの ViewModel が WPF の Catel MVVM で更新されない
NC2 の 3 つのインスタンスを含むネストされたコントロール (NC1) があります。含まれているビューが最初に開かれると、NC1 は null になるため、NC2 の 3 つのインスタンスは null になります。これは、コードとフレームワークを介したデバッグに基づいて正しく機能しているようです。
包含ビューで選択が行われると、NC1 が適切に設定され (そして ViewModel が (再) 作成され)、そのプロパティの値 (Fody.Expose によって公開される) がビューに表示されます。ただし、NC2 の ViewModel は (再) 作成されておらず、それぞれのモデルによって提供される値を反映していません。
たくさんのコンテンツをアップロードしないと、どのような情報を提供すればよいか正確にはわかりません。
NC1ビューには、次のものがあります
<localViews:NC2 DataContext="NC2Entry1"/>
<localViews:NC2 DataContext="NC2Entry2"/>
<localViews:NC2 DataContext="NC2Entry3"/>
NC2EntryX は、リストから NC2 モデルの特定のインスタンスを返す NC1 ViewModel のプロパティです。NC2EntryX プロパティは RegisterProperty に登録されていません。
注意として、NC1 および NC2 ビュー モデルには空のパラメーター コンストラクターが必要であることがわかりました。そうしないと、ビュー モデルが作成されているときに、TypeFactory がインジェクション パスを使用する代わりにアクティベーターを使用してビューモデルを作成しようとすると、MissingMethod 例外が発生します。渡された NC2 モデルが「登録されていない」ため、TypeFactory の 591 行目の呼び出しで false が返されるため、インジェクション パスは使用されません。(そうすべきかどうか、またはそうする方法がわからない。)
Catel バージョン 3.9.0 を使用しています
c# - Catel/Ninject: IUIVisualizerService の解決時に Ninject.ActivationException が発生する
IUIVisualizerService を解決しようとしたときに、Ninject.ActivationException が Ninject.dll で発生しました。
誰かが私を助けてくれますか?
このコード セクションは問題を呼び出します。
リゾルバーのコード:
編集: GetService が呼び出された後、null オブジェクトを取得しました。しかし、例外は発生しませんでした。Visual Studio のコンソール出力にのみメッセージが表示されます。
タイプ "Ninject.ActivationException" の予期 (最初のチャンス) が Ninject.dll でスローされました。
編集2:
素早い回答をありがとう。同じ問題に遭遇した人のための具体的な解決策は次のとおりです。
NinjectResolver では、次のコードを追加する必要があります。
IUIVisualizerService の解決:
catel - Catel MessageMediator での双方向通信
メッセージメディエーターを介して双方向通信をセットアップするための推奨される方法は何ですか?
私の直感は、2 つのチャネル (要求/応答) を作成することでした。MessageMediator 内でチャネルを作成する方法がわかりません。
それから私の考えは、messageMeditor の 2 つのインスタンスを持つことでしたが、これは不器用に思えます。
最後に、メッセージの一部としてコールバックを行うことができました。これはこれを達成するための推奨される方法ですか?
c# - モダン UI で Catel を使用している場合の複数の VM の作成
Catel フレームワークが大好きです。モダンな UI はかなり見栄えがします。しかし、それらを連携させようとしているときに問題に直面しました。
2 つの catels usercontrolsHome
とmuiSecond
プロジェクトを追加しました。問題は、Home
からSecond
実行への移行HomeViewModel
が 3 回作成されたときです。
この動作は、次のコードによって引き起こされますTransitioningContentControl
いくつかの行にコメントすると:
この場合、同じトランジションで 1 回作成されますが、コントロールからのナビゲーションを実行中HomeViewModel
に作成したくありません。どうすればこれを達成できますか?HomeViewModel
Home
catel - Catel でプログラムによってコントロールをインスタンス化する方法
コントロールを動的に作成してデータ ウィンドウにロードしようとしています。
上部にさまざまな種類のレポートのタブがあります。タブ コントロールに追加することを忘れずに、新しいレポートを作成できるようにしたいと考えています。リフレクションを使用して特定のインターフェイスを実装するビューを識別し、ファクトリを使用してこれを実行しようとしています。コントロールがインスタンス化されたら (以下のコード)、それらを TabItem にラップして、タブ コントロールに追加します。ここに工場があります:
ここに私の MainViewDataWindow があります:
ビューモデルは次のとおりです。
問題は、ビューがこのようにインスタンス化された場合、ViewModel の初期化で Catel マジックが発生しないことです。おそらく私はこれに正しい方法でアプローチしていませんが、ビュー/ビューモデルをプログラムでロード/初期化するための施設/ヘルパーがCatelにありますか?
entity-framework - Catel ModelBaseエラー
https://catelproject.atlassian.net/wiki/display/CTL/Using+ModelBase+as+base+for+entitiesのドキュメントで提案されているように、ModelBase を EntityBase の基本クラスとして使用しようとしています。
Windows デスクトップ (C#)、EF v6、および Catel v3.9 に VS Express 2013 を使用しています。
アプリをビルドしようとすると、次のエラー メッセージが表示されます。
エラー 1
Catel.Data.ModelBase<T>
は廃止されました: ジェネリック クラスは使用されなくなりました。代わりに非ジェネリック ベースを使用してください。代わりに使用してくださいModelBase
。バージョン 4.0.0 で削除されます。
私は Catel と Entity Framework に慣れていないので、これらを一緒に使用する方法に関する最新のガイダンスをいただければ幸いです。