問題タブ [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.
system.reactive - すべてが有効な場合にアイテムのコレクションを観察する方法は?
ReactiveUI と提供されたReactiveCollection<>
クラスを使用しています。
ViewModel にはオブジェクトのコレクションがあり、それらのアイテムの IsValid プロパティを監視するオブザーバブルを作成したいと考えています。
これは私が解決しようとしているシナリオです。私のViewModelのコンストラクターで。
編集アナの答えは、私をそこに連れて行ってくれました。解決策は次のとおりです。
c# - 単体テストIObservableObserveOnDispatcher を使用
コードの一部をテストする必要があります
だから私はこの小さな単体テストを作成しましたが、原因リストに合格させることはできません.Countは常に0です
メソッドをコメントアウトすると
合格しますが、 ObserveOnDispatcher() でも動作させるにはどうすればよいですか?
wpf - ReactiveUIを使用してTextBoxのViewModelバインディングを設定するにはどうすればよいですか?
何らかの理由で、テキストボックス/プロパティバインディングをReactiveUIで「自動的に」機能させることができません。
私のDataContextは次のように設定されています。
私のViewModelは、MainWindow.xaml.csのコードビハインドでセットアップされています。
WPF MainWindow.xamlには、DataContextがあり、次のようなテキストボックス要素があります。
(その他のプロパティは省略)
MainWindowViewModelには、次のようなプロパティとフィールドがあります。
次のように設定されたコマンドもあります。
ご想像のとおり、パスワード確認テキストボックス/プロパティの設定と、ボタンのコマンドセットもあります(パスワード確認テキストボックスにも同じ問題があります)。フィールド/プロパティの組み合わせがViewModelで更新されることはないため、ボタンが有効になることはありません。
デバッグして、ViewModelがXAMLにバインドされていることを確認しましたが、TextBoxを入力するときに、フィールド/プロパティの組み合わせでテキストが更新されません。
GitHubリポジトリでサンプルのWP7アプリケーションを確認したところ、イベントを手動でバインドしてKeyUp
、プロパティ/フィールドのテキストにテキストを設定しました。この規則に従うと、MainWindow.xamlに次のようになります。
しかし、それはそれを行う正しい方法ですか?間違えない限り、他のMVVMフレームワークで見たように、ReactiveUIがバインディングを処理すると思いました。もっと簡単な方法はありますか?
アップデート
Paul Bettsが彼の回答のコメントで指摘したように、このプロパティをバインディングに追加することで、バインディングを自動的に更新できるようにすることができます。
これにより、TextBox要素は次のようになります。
windows-phone - RxUI: コレクションからアイテムを削除した後の例外
ReactiveUI を勉強するための簡単な WP7 アプリを書いています。画面にコレクションを表示したい、アイテムを選択可能にする必要があり、選択したすべてのアイテムをコレクションから削除するコマンドが必要です。また、コマンドは、選択された項目が少なくとも 1 つある場合にのみ実行可能でなければなりません。私はこのように定義されたコレクションを持っています:
私はPersonViewModel
プロパティを持っています:
モデルの選択状態に関する情報はなく、viewModel だけです。Page ViewModel には、次のコードがあります。
そして方法:
最初の質問 (それほど重要ではありません。自分で解決策を見つけることができると思います): アプリを実行すると、DeleteSelected ボタンが Active.DeleteSelectedCommand.CanExecute になりません。ただし、アイテムを選択/選択解除した後、ボタンの状態は正常に機能します。
そして主な問題:
DeleteSelectedCommand を実行すると、選択したすべての項目が削除されます (デバッガーに表示されます)。そして、次のスタック トレースで「NotSupportedException」を取得しました。
だから私はそれを間違っていますが、何が問題なのですか?STからはわかりません。この動作を実装する正しい方法は何ですか。それはとても一般的ですよね?
更新
deleteSelectedCanExecute に関するすべてのコードを削除してプログラムを実行すると、クラッシュします。削除するParticipants.ChangeTrackingEnabled = true;
と、期待どおりに機能します。
windows-phone-7 - Windows Phone アプリで MVVM Light と AgFx を一緒に使用する
Windows Phone アプリの開発を始めたばかりで、Silverlight や WPF (実際には XAML ベースのプラットフォーム) を使用した経験はありません。当然のことながら、飛び込む前に多くの調査と学習を行うことから始めましたが、それは少し圧倒されたと言わざるを得ません.
私が決定したことは、アプリが MVVM パターンに従うことであり、REST Web サービスと常に通信するため、優れたキャッシュ フレームワークも配置したいと考えています。
私は現在、MVVM Light、RestSharp、Silverlight Toolkit、Facebook C# SDK、および Twitterizer を使用する主要なライブラリとして検討しています。(実際には、認証と承認には Facebook と Twitter しか必要ないので、ライブラリをまったく使用せず、RestSharp にも処理させる可能性があります)。
本当の問題は、初めてなので、MVVM Light や、MVVM を簡単に使用できるようにするなどの優れた機能を備えた RestSharp のようなものを使用するか、AgFx を使用するかを決めることができないことです。また、Rx もオプションとして検討するのに十分な回数言及されているのを見てきましたが、これまで読んだことから、MVVM Light または AgFx では機能しません。ReactiveUI フレームワークもありますが。
どのプラットフォームを使用するかについてのアイデアや推奨事項は、ここで高く評価されます。前に述べたように、私のアプリは REST バックエンドに完全に依存し、電話で位置情報サービスを積極的に使用します (私のアプリは実際には位置情報に基づいています)。
ありがとう。
wpf - MahApps.Metro.Controls の読み込み中の WPF デザイナー エラー (System.NullReferenceException)
デザイナーをロードするときに未処理の例外が発生します (VS2010)
これらは詳細です。
私が試してみました
-- すべてのテキスト ボックスをコメント アウトします。
-- ビューモデル コンストラクターのすべてのコードをコメント アウトする
-- MainWindow コンストラクターでの MainWindowVieWModel の作成をコメントアウトしています...
私は当惑しています..
コード...
メイン ウィンドウ ビュー モデルのコンストラクターは空であるため、問題はありません。
MainWindowXaml...
windows-runtime - RxRTMを使用した監視可能なコマンドおよび単体テスト
WinRTとRxの両方のRTMバージョンにコードを移植しました。ViewModelsでReactiveUIを使用しています。コードを移植する前は、単体テストは問題なく実行されていましたが、今では奇妙な動作が発生しました。
ここでテスト:
テストを段階的にデバッグすると、アサーションは失敗しませんが、テストランナーを使用すると失敗します...
アサートされたコレクションは、コマンドをサブスクライブするメソッドによって変更されます。
コードは、RTMに移動する前に機能していました。また、を削除して、アサートObserveOn
の前に追加しようとしましたがawait Task.Delay()
、成功しませんでした。
windows-runtime - RxUIを使用して、KeyDownイベントをサブスクライブし、基準に基づいて入力を防ぐことができますか?
WinRtプロジェクト内でRxUIを試してみて、何かが機能するかどうかを確認しているところですが、私が行っていることは有効なユースケースではないと思われますが、確かにお願いしたいと思います。
プロパティにバインドされたテキストボックスがあります。keydownイベントをサブスクライブして、ユーザーが不適切な文字(この場合は数字以外のもの)を入力しないようにします。MVVMを使用しているため、テキストボックス自体にはアクセスできず、バインディング値のみにアクセスできます。
これはまだできますか?-望ましくない場合は、変更されたプロパティをサブスクライブし、後で入力を元に戻すのは少し奇妙に思えます。
c# - ユーザー確認による非同期コマンド実行
ユーザー確認で非同期削除操作を実行する必要があります。このようなもの:
問題は、MessageBox も非同期で実行されることです。ReactiveUI でユーザーに同期的に質問し、メソッドを非同期的に実行するのに最適なパターンはどれですか?
c# - のICreatesObservableForPropertyが見つかりませんでした
ReactiveUIの調査を始めたばかりですが、いくつか問題があります。
ReactiveObjectでは、プロパティに基づいてオブザーバブルを作成しようとしています...
...これは次のエラーにつながります:
MyApplication.ViewModels.StudentListViewModelのICreatesObservableForPropertyが見つかりませんでした。これは決して起こらないはずです、あなたのサービスロケーターはおそらく壊れています。
私はNinject
DIコンテナーとして使用し、次のようにReactiveUIに通知しようとしました。
誰かがここで問題を見ていますか?