問題タブ [reactiveui]
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# - ReactiveUI例外処理
いくつかのReactiveUIサンプルを見回しましたが、ユーザーにメッセージを表示する必要がある例外を処理する方法の簡単な例がわかりません。(良い例があれば、誰かが私にそれを指摘できますか?)
私の最初の質問は、ReactiveCommandとToPropertyで例外を処理する方法です。たとえば、次のコードがあります。
上記のコードを実行すると、このオブザーバブルはアイテムを受け取らないため、ThrownExceptionsを誤解しているに違いないと思います。私は何が間違っているのですか?
2番目の質問は、MVVMに適した方法でこれをどのように行うかです。このブログエントリでは、ユーザーエラー機能について言及していますが、その使用方法に関するドキュメントが見つかりません。上記の例にどのように実装しますか?
編集:以下のPaulの回答に基づいて、githubでソリューションの例を公開しました。
reactiveui - ReactiveUI 4.1 CreateDerivedCollection(...) フィルターが機能していないようです
を使用してReactiveUI 4.1います。ReactiveCollectionフィルターIsSelectedを使用してIsSelected == true. 派生コレクションを作成する前に、ソース コレクションに未選択または選択されていない項目が事前に入力されている場合、ビュー フィルターは機能しているように見えますが、後でソース コレクションの項目が選択された状態から選択されていない状態になったときに、これらの項目は内部で「消える」ことはありません。派生コレクション。ChangeTrackingEnabledすべてのコレクションでフラグを設定trueしていますが、役に立たないようです。私のコードスニペットを添付:
c# - 1つのオブジェクトのバグに2つの場合
DPのプロパティを監視するためにreactiveUIを使用しますコードは
ウィンドウの高さでサイズを変更するとメッセージボックスはありませんが、ウィンドウの幅でサイズを変更すると2つのメッセージボックスが表示されます
2つのプロパティを1つで監視できることはわかっていますが、異なるタイプの2つの依存関係プロパティを2つのWhenAnyで監視する必要があります。
これどうやってするの?
reactiveui - ReactiveAsyncCommandをサブスクライブしても、スローされた例外でOnErrorが呼び出されません
ReactiveAsyncCommand(SL5)を作成しましたが、OnErrorメソッドを起動するためのサブスクリプションを取得できませんでした。これがコードです
そしてスタートのコード
このコードを実行すると、ReactiveUIフレームワークから例外が発生し、ThrownExceptionsにサブスクライブする必要があることを示唆します。私がそうするとき、私が上で投げた例外は正しく扱われます。
コマンドサブスクリプションがOnErrorを呼び出すことを期待すべきでしたか?または、ThrownExceptionsを使用する必要がありますか。
wpf - ReactiveAsyncCommand で CanExecute = null を使用すると、CanExecute が常に false になります
この質問は、私が以前に投稿した質問に関連しています (ここ)。
私はReactiveAsyncCommand次のように使用しています:
したがって、関数の結果をリストにパイプするコマンドを 10 秒ごとに呼び出したいと思います。
ただし、最初の の後、Executeその後の各回ではCanExecute、コマンドの は false です。私はそれを使用して確認しました:
これが起こっている理由はありますか?
wpf - 依存関係プロパティを組み合わせる
私はいくつかの WPF プロジェクトを実行しましたが、同じ問題がポップアップ表示されます。これは、依存関係プロパティ (dp) の集約/結合の「問題」です。
たとえば、bool 型の 10 個の dp を結合して、分離した dp として公開したいと考えています。組み合わせた dp は、その構成要素の 1 つ以上が false でない限り、true です。
私は現在、10 個の (!() dp のそれぞれに対してコールバックを登録する addValueChanged を使用してこれを行っていますが、より洗練されたソリューションや、この一般的なシナリオに対処するフレームワークがあるかどうか疑問に思っています。reactiveUI と mvvm light はまだ使用していません。しかし、私はそれがここで役立つと考えています。
system.reactive - WCF Async with Rxユニットテストが不安定なのはなぜですか?
MVVMプロジェクトでRxとRxUIを使用していて、WCFサービスからのデータを非同期でクエリするビューモデルがあります。単体テストでは、期待値を持つタスクを返すモックオブジェクトを作成します。
これが私のビューモデルがどのように見えるかの一般的な考え方です
私の単体テストは次のようになります
私が抱えている問題は、この種のことを行う400以上のテストがあり、それらはすべてほとんどの場合機能しますが、シーケンスに値がないことを報告する、一度に1つか2つの失敗したテストをランダムに取得することです。これは予測不可能でランダムです。失敗した後、テストを再度実行して、すべて成功することができます。ここで説明するようにTestSchedulerを追加しましたが、問題は解決しません。
非同期メソッド呼び出しを行うメソッドをテストするためのより良い方法はありますか?
Paul Bettの入力から編集:FromAsyncはISchedulerパラメーターを受け取らないようですが、SubscribeOnとObserveOnを使用できます。
または、WCF非同期メソッドを直接呼び出して、返されたタスクを監視対象に変換することもできます。Observable.FromAsyncを使用する方が適切なのか、使用しない方が適切なのかがわかりません。
reactiveui - デフォルト以外のバッキングフィールドの命名規則を使用したUserError.Throw
UserErrorクラスで何が間違っているのか理解できません。
これは私のViewModel内のコードです:
Usererror.Throw例外が非同期アクション内でスローされた後、それは私の内部に正しく伝播されSelectManyます。Throwメソッド内で、RxUIは次の引数例外をスローします:「recoveryOptionsという名前のこのプロパティのバッキングフィールドを宣言する必要があります」
私はこれを調査しましたが、UserErrorクラスには_RecoveryOptionsUserError自体から設定されているがあります。ただし、アプリのOnStartupイベントハンドラー内でこれを使用して、プロセス全体にレンチを投入しています。
RxApp.GetFieldNameForPropertyNameFunc = prop => prop.Length == 1 ? prop.ToLower() : char.ToLower(prop[0]) + prop.Substring(1);
基本的に、バッキングフィールドはアンダースコア/アッパーではなく小文字で始めたいと思います。これまでのところ、UserErrorを使おうとするまで、RxUIはこれを尊重してきました。ステップがありませんか、それともRxUIのバグですか?
これはリアクティブUI3.2.0用です