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

performance - 複数のリスト アイテムを使用した Catel のパフォーマンス

Catel ViewModel のパフォーマンスに問題があります。

〜300個のアイテムを持つListViewがあります。各アイテムには、独自の UserControl と ViewModel があります。ViewModel には、コンストラクターのパラメーターである Model プロパティがあります。

複雑ではない 300 個の ViewModel を作成するのに少なくとも 10 秒かかります。

よくある問題ですか?それをどのように処理すればよいですか?

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

c# - ShowDialog の Catel async await コマンド - デッドロック

ライブラリСatel最新バージョン(3.8.1ベータ版)を使用。

ダイアログ ウィンドウから TAP メソッドを使用するにはどうすればよいですか?

例。メソッドを呼び出すメイン ViewModel で

LoginWindowViewModelには、メソッドと呼ばれるコマンドがあります(AsynchronousCommandも試してください)

ダイアログウィンドウを閉じたときにのみ、待望のメソッドから結果を取得しました。ロックがオンラインで表示されます

var uow = 新しい UnitOfWork()

ConfigureAwait(false) - 問題の解決には役立たない

UnitOfWork を削除すると、メソッドが機能します

メソッドコードをこれに変更すると var d = TypeFactory.Default.CreateInstanceWithParameters(); 5 を返します。

ブロッキングは TypeFactory の行でも再現されます...

サービスによっては、ダイアログ ボックスで Catel を使用できない場合があります

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

catel - 間違ったビューが表示されています (Catel)

MainWindowViewModel から ViewModel を使用してビューを開こうとしています。動作しますが、空白のウィンドウしか表示されません。正しいタイトルをバインドしますが、他のすべてのコントロールがありません。

誰かが同じ問題を抱えていて、解決策を見つけましたか?

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

c# - WCF Data Services クライアントで「タイプ 'full.name' に設定可能なプロパティがありません」を回避するにはどうすればよいですか?

カスタムエンティティクラスでWCF Data Services 5.6を使用しており、Catelの ModelBaseから継承するエンティティにデータを正常に読み込んでいます。ただし、挿入または更新を実行しようとすると、Data Service によって使用されるリフレクションが、セッターを持たないインターフェイスを実装する ModelBase の読み取り専用プロパティ「ValidationContext」の 1 つで失敗します。ValidationContext には、Catel 内で定義された [XmlIgnore] 属性と [Browsable(false)] 属性の両方があります。

Configurations.RequestPipeline.OnEntryStarting および OnEntryEnding フックの両方でプロパティを削除しようとしましたが、WritingEntry イベントで xml を編集する(古い学校の) メソッドも使用しました。ただし、これらのイベントのいずれかがトリガーされる前に、以下の例外が発生します。

そのため、Data Services クライアントはシリアル化を試行する前に型を反映しているように見え、IValidationContext をモデル内の有効なエンティティ型として解釈できないため、そこでエラーを吐き出しています。

私がテストに成功した回避策の 1 つは、公開されている ModelBase プロパティを公開されていないバージョンに効果的に置き換えることです。

しかし、これは明らかに受け入れられません。なぜなら、ValidationContext を他の場所で使用できないからです。

これは、エンティティの対応する部分クラス コードにこのようなプロパティを追加する場合、「サービス参照の追加」によって生成されたプロキシにも問題があると思います。

何かアドバイス?関連する Serializer メソッドのいずれかを置き換える/オーバーライドすることはできますか?


タイプ 'Catel.Data.IValidationContext' には、設定可能なプロパティがありません。ソース: System.Data.Services.Client.ClientEdmModel.GetOrCreateEdmType(Type タイプ) の Microsoft.Data.Services.Client System.Data.Services.Client.Metadata.ClientTypeUtil.TypeIsEntity(Type t、ClientEdmModel モデル) System.Data .Services.Client.ODataPropertyConverter.TryConvertPropertyValue(ClientPropertyAnnotation プロパティ、オブジェクト プロパティ値、HashSet1 visitedComplexTypeObjects, ODataValue& odataValue) at System.Data.Services.Client.ODataPropertyConverter.PopulateProperties(Object resource, String serverTypeName, IEnumerable1 プロパティ) System.Data.Services.Client.Serializer.WriteEntry(EntityDescriptor entityDescriptor, IEnumerable`1 relatedLinks, ODataRequestMessageWrapper requestMessage) で System.Data.Services.Client.BaseSaveResult.CreateRequestData(EntityDescriptor entityDescriptor, ODataRequestMessageWrapper requestMessage) で System.Data .Services.Client.BaseSaveResult.CreateChangeData(Int32 インデックス、ODataRequestMessageWrapper requestMessage) System.Data.Services.Client.BatchSaveResult.GenerateBatchRequest()
で System.Data.Services.Client.BatchSaveResult.BatchRequest() で System.Data.Services. System.Data.Services.Client.DataServiceContext.SaveChanges() の Client.DataServiceContext.SaveChanges(SaveChangesOptions オプション)

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

c# - Catel ModelBase.Load での XmlRoot、XmlAttribute、および XmlElement のサポート?

ModelBase からの派生クラスで問題が発生しています。それらをシリアライズおよびデシリアライズしたいのですが、XmlAttribute と XmlElement を使用して xml 属性をプロパティにマップしたいと考えています。今のところ、これを ModelBase から派生したクラスで動作させることはできないようです。

  • 標準の XmlSerialize を使用すると、値が取得されません
  • 基本クラスを削除して XmlSerialiez を使用すると、すべてが機能します
  • ModelBase.Load<>() の使用も機能しません

何か案が?