問題タブ [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 に答える
629 参照

catel - Catel で ViewModel のクローズ (およびモデルのキャンセル) を防止する方法

ViewModel が閉じないようにする必要があります。また、モデルの編集がキャンセルされないようにする必要があります。ViewModel で OnClosing をオーバーライドしようとしましたが、そのイベントは遅すぎました。モデルの編集がキャンセルされた後に発生しました。(私には奇妙な出来事の順序のように思えます。)

OnViewModelCanceling を使用するという古い質問と回答を見つけましたが、そのメソッドは現在のバージョンではオーバーライド可能として存在しません。

OnViewModelEvent を見つけましたが、別名、ViewModel のイベントに対して呼び出されません。

では、ViewModel で Cancel をオーバーライドして false を返す正しい解決策はありますか、それとも ViewModel で Canceling イベントを登録する必要がありますか?

Cancel のオーバーライドを使用してみましたが、単純な ViewModel で機能します。ただし、現在の ViewModel に ViewModel を含むネストされたコントロールがあり、それらも Cancel から false を返す場合、外側の ViewModel は Cancel でクラックを取得することさえありません。(これは理にかなっています。)ここでの私の問題は、キャンセルを尊重したい場合があり、外側のViewModelはそれを認識していますが、ネストされたViewModelは認識していません。これをさまざまな方法で解決できることはわかっていますが、この新しい問題を解決する前に、モデルの編集のキャンセルを防ぐためのより良い方法があるかどうかを知りたいです。

これは、質問ごとに 1 つの質問の規則に違反する可能性がありますが、非常に密接に関連しています。また、ViewModel を閉じる方法を知る必要がありますが、そのモデルに対して EndEdit (または CancelEdit) を実行しないでください。

Catel 3.9 を使用した WPF アプリケーション

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

wpf - Catel を使用して複数の WPF アプリケーションを作成する

WPF と Catel を使用して新しいプロジェクトを開始しました。所有権なしで複数のウィンドウを使用できるようにしたいと考えています。標準ウィンドウでダイアログを作成するアプリケーションを作成できました。ウィンドウを作成して現在のウィンドウを閉じる方法の例またはチュートリアルを見つけたいと思います。

例:

Window1 -> Open Window2 ボタンを選択 -> Window2 を開く -> Window1 を閉じる

ありがとう

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

mvvm - ObservableCollection のアイテムの値を変更する

一般的な顧客請求シナリオ:

LineItems を保持するビューモデルの ObservableCollection。このビューには、計算された LineTotal が各行の最後に表示された LineItems が一覧表示されます。ページの下部に総計が表示されます。

ユーザーが Qty に変更を加えた場合、ページ上の他の項目を更新するために、Qty にバインドされた TextBox で EventToCommand トリガーを使用します。コマンドが呼び出されると、明細行の合計と請求書の合計を手動で再計算して、変更を反映します。

ユーザーが行った変更を Qty ボックスに反映するためのより良い方法はありますか? 「再バインド」を強制してページを更新する方法は? これを処理する Fody または Catel には何かありますか?

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

silverlight - デバッグ中に Catel コードをステップスルーする方法は?

プロジェクトのビュー (mainPage) の 1 つに Catel 実装を追加した後、Silverlight プロジェクトをクラッシュさせるバグが発生しました。私が持っている唯一の兆候は次のとおりです:「タイプ 'System.NullReferenceException' の最初のチャンスの例外が Catel.MVVM で発生しました」(RootVisual~ を設定した直後) - 私が間違っていることを見つけることができません。 Catel との長期的な関係を計画しています。Catel のコードをステップ実行することが役立つかもしれないと思ったので、次のすべてのステップを試してみましたが失敗しました (助けていただければ幸いです..何かを見つける):

  1. ダウンロードした catel 3.9 ソース ファイル (私の nuget パッケージと同じ) をビルドしてみました..次のエラーで失敗しました: E:\Dev\Catel-3.9.0\src\Catel.Core\Catel.Core.SL5\Fody.targets( 51,5): エラー MSB4036: "Fody.WeavingTask" タスクが見つかりませんでした。以下を確認してください: 1.) プロジェクト ファイル内のタスクの名前がタスク クラスの名前と同じである。2.) タスク クラスは "パブリック" であり、Microsoft.Build.Framework.ITask インターフェイスを実装します。3.) タスクは、プロジェクト ファイル、または "E:\WINDOWS\Microsoft.NET\Framework\v4.0.30319" ディレクトリにある *.tasks ファイルで正しく宣言されています。-理由を検索して理解し、これを克服しようとすると、どこにも行きません。:(

  2. Catelドキュメントのこの「コードをステップ実行する」指示に従いましたが、実際に起こったことに注意してください(私はVS2010を使用しています..これは問題ですか??)

  3. この記事と readme.md を読みました: https://github.com/GeertvanHorrik/GitHubLink GitHubLink を使用して、デバッグ中に Catel コードをステップ実行する方法について説明しています。https://github.com/GeertvanHorrik/GitHubLink/releases/tag/1.3.0からリリース GitHubLink 1.3.0 をダウンロードしました...しかし、githublink.exe -help フラグだけでもこれを実行すると、例外がスローされました..

  4. Githublink-master ソース ファイルをダウンロードしましたが、0 個のプロジェクトが読み込まれました (GithubLink プロジェクト ファイルは現在のバージョンの VS と互換性がありません - 私は VS2010 を使用しています)

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

  • cat (no.1) で受け取ったビルド エラーを克服する
  • cat を設定してステップインする方法を教えてください。
  • Catel ライブラリの pdb ファイルを共有する
0 投票する
1 に答える
72 参照

attributes - Catel ServiceLocatorRegistration 属性取得コンパイル エラー メッセージ

Catel フレームワークに自動登録して作成しようとしていますが、

しかし、このコードをコンパイルすると、このエラーが発生しました。属性引数は、定数式、typeof 式、または属性パラメーター タイプの配列作成式でなければなりません

Catel ServiceLocatorRegistration 属性には、私が知らない何かが必要ですか?

ヘルプ!!

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

c# - catel 3.9.0+ のカスタム ウィンドウで catel:WindowBehavior を使用する方法

infragistics XamRibbonWindow に基づいてウィンドウを作成したいのですが、catel 機能を備えています。catel ドキュメント内で、catel:WindowBehavior を使用してこれをアーカイブする方法に関する情報を見つけました。

簡単すぎますよね?まあ、それは本当にあなたがしなければならないすべてです

しかし、この動作を標準の wpf ウィンドウに追加すると、例外がスローされます。ウィンドウクラスが機能するには、 catel:IView を実装する必要があることがわかります。

そこで、さらに調べて、別のサンプルを見つけました。ただし、インターフェイス IDataWindow には、このサンプルよりも v3.9 の方がいくつかのイベントとプロパティがあります。

そこで、さらに調査するために高度なサンプル プロジェクトをダウンロードすることにしました。しかし、これは現時点では catel v3.8 に基づいており、3.9 とは異なります。

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

c# - 「Catel.IoC.IServiceLocator」には「インスタンス」の定義が含まれていません

私は .NET 開発と Catel にまったく慣れていませんが、それを学ぶためのプロジェクトに取り組んでいます。現時点では元の開発者は不在なので、代わりにここで運試しをします。

Undo/Redo を実装するには、Catel の Memento パターン サポートが優れているように思われるので試してみますが、MementoService のインスタンスを取得するのに問題があります。ViewModel で行うと、次の var mementoService = ServiceLocator.Instance.ResolveType<IMementoService>(); ようになります。 'Catel.IoC.IServiceLocator' does not contain a definition for 'Instance' and no extension method 'Instance' accepting a first argument of type 'Catel.IoC.IServiceLocator' could be found (are you missing a using directive or an assembly reference?)

モデルで同じことをしても、この問題は発生しないことに気付きました。サービスのインスタンスを取得しようとする場所に応じて、異なる方法でサービスのインスタンスを取得する必要があるのは奇妙に思えます。

私は自分が間違っていることを理解していません。NuGet パッケージ マネージャー コンソールは、Catel.Extensions.Memento 3.7 と、Catel.Core、Catel.MVVM、および Catel.Extensions.Controls 3.7 がインストールされていることを示しています。.NET 4.0 で Visual Studio 2013 を使用しています。