問題タブ [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.

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

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 を使用しています

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

c# - Catel/Ninject: IUIVisualizerService の解決時に Ninject.ActivationException が発生する

IUIVisualizerService を解決しようとしたときに、Ninject.ActivationException が Ninject.dll で発生しました。

誰かが私を助けてくれますか?

このコード セクションは問題を呼び出します。

リゾルバーのコード:

編集: GetService が呼び出された後、null オブジェクトを取得しました。しかし、例外は発生しませんでした。Visual Studio のコンソール出力にのみメッセージが表示されます。

タイプ "Ninject.ActivationException" の予期 (最初のチャンス) が Ninject.dll でスローされました。

編集2:

素早い回答をありがとう。同じ問題に遭遇した人のための具体的な解決策は次のとおりです。

NinjectResolver では、次のコードを追加する必要があります。

IUIVisualizerService の解決:

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

catel - Catel MessageMediator での双方向通信

メッセージメディエーターを介して双方向通信をセットアップするための推奨される方法は何ですか?

私の直感は、2 つのチャネル (要求/応答) を作成することでした。MessageMediator 内でチャネルを作成する方法がわかりません。

それから私の考えは、messageMeditor の 2 つのインスタンスを持つことでしたが、これは不器用に思えます。

最後に、メッセージの一部としてコールバックを行うことができました。これはこれを達成するための推奨される方法ですか?

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

c# - モダン UI で Catel を使用している場合の複数の VM の作成

Catel フレームワークが大好きです。モダンな UI はかなり見栄えがします。しかし、それらを連携させようとしているときに問題に直面しました。

2 つの catels usercontrolsHomeとmuiSecondプロジェクトを追加しました。問題は、HomeからSecond実行への移行HomeViewModelが 3 回作成されたときです。

この動作は、次のコードによって引き起こされますTransitioningContentControl

いくつかの行にコメントすると:

この場合、同じトランジションで 1 回作成されますが、コントロールからのナビゲーションを実行中HomeViewModelに作成したくありません。どうすればこれを達成できますか?HomeViewModelHome

味わうプロジェクト

0 投票する
3 に答える
396 参照

catel - Catel でプログラムによってコントロールをインスタンス化する方法

コントロールを動的に作成してデータ ウィンドウにロードしようとしています。

上部にさまざまな種類のレポートのタブがあります。タブ コントロールに追加することを忘れずに、新しいレポートを作成できるようにしたいと考えています。リフレクションを使用して特定のインターフェイスを実装するビューを識別し、ファクトリを使用してこれを実行しようとしています。コントロールがインスタンス化されたら (以下のコード)、それらを TabItem にラップして、タブ コントロールに追加します。ここに工場があります:

ここに私の MainViewDataWindow があります:

ビューモデルは次のとおりです。

問題は、ビューがこのようにインスタンス化された場合、ViewModel の初期化で Catel マジックが発生しないことです。おそらく私はこれに正しい方法でアプローチしていませんが、ビュー/ビューモデルをプログラムでロード/初期化するための施設/ヘルパーがCatelにありますか?

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

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 を使用しています。

アプリをビルドしようとすると、次のエラー メッセージが表示されます。

エラー 1Catel.Data.ModelBase<T>は廃止されました: ジェネリック クラスは使用されなくなりました。代わりに非ジェネリック ベースを使用してください。代わりに使用してくださいModelBase。バージョン 4.0.0 で削除されます。

私は Catel と Entity Framework に慣れていないので、これらを一緒に使用する方法に関する最新のガイダンスをいただければ幸いです。