私はビューに2つのボタンを持っています.1つはサウンドを録音するためのボタン、もう1つは録音が終了したときに録音を再生するボタンです。録音が完了したら、recording_doneのVMプロパティを1に設定します。これはCanPlay()で使用され、再生ボタンが有効になります。これまではすべてうまく動作します。DispatcherTimerはUIの更新をブロックしますか?
2秒後に自動的に録画を停止するタイマーを追加しました。いくつかの試行錯誤の末、私はDispatcherTimerで解決しました。私の問題は、UI(再生ボタン)は、WPFウィンドウをクリックするまで(ウィンドウのどこかどこでも)有効になります。明らかに、デバッグmsgはrecording_doneが1に設定されていると言います。ウィンドウをクリックするまでは、UIアップデートを起動するはずですが、起動しません。
私は両方の方法を試しました。1.録画ボタンがViewModelのコマンドにバインドされました。そこで、タイマーを開始してタイマーを停止します。 2.記録ボタンハンドラとタイマーコードをビューのコードの中に入れます。同様の問題。
提案がありますか?これはスレッド/ UI更新の問題ですか?ありがとう。
タイマーイベントハンドラにRaiseCanExecuteChanged()を追加しました。そして、はい、それは動作します!ありがとう! –