問題タブ [routed-commands]
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.
wpf - RoutedCommand を新しい ViewModel に取得するには?
MVVM を使用して開発された、比較的単純な階層データ マスター/詳細 WPF ウィンドウがあります。ここで、ウィンドウは、詳細ビューの ViewModel をプロパティの 1 つとして公開する ViewModel を指します。
ViewModelBase
Roslyn を使用して Visual Basic に移植したJosh Smith のVMCommandingコードの実装が含まれています。
Window の XAML は基本的に次のようになりますが、無関係な詳細と多数の閉じ括弧が省略されています。
「Master」のアイテムを選択すると、「Detail」の が対応する DetailViewModel に設定されますListBox
。そのリスト ボックスで 2 番目の項目を選択すると、[詳細] ボックスの が、選択した対応する DetailViewModel に変更されます。パフォーマンス上の理由から、一度選択すると DetailViewModel が保持され、[詳細] ボックスの内外に切り替えられます。DataContext
ListBox
DataContext
DataContext
「詳細」でアイテムを選択するListBox
と、「マスター」ボックスで選択された ViewModel によってキャッチされることになっている RoutedCommand がトリガーされます。ただし、RoutedCommand
がフォーカスを正しい DetailViewModel に変更することはありません。コマンドは、最初の「マスター」ListBox 選択に対応する DetailViewModel によって常にキャッチされます。
他に何をする必要がありますか?
python - Djangoで構築されたWebベースのアプリケーションからSSHを使用してリモートホストでコマンドを実行するには?
リモートホストでいくつかのコマンドを実行する必要があります。このホストは「ルーター」になります。私は RPC 呼び出しを扱ったことがありません。Django
もう 1 つの大きな問題は、 Web ベースのアプリケーションからこれらのコマンドを実行する必要があることです。手順は次のとおりです。
- ユーザーがページを開き、実行するコマンドを選択します
- ユーザーは、指定されたリストからリモート ホストを選択します
- ユーザーが実行ボタンをクリック
- その間、Django はセキュリティの問題をチェックします。を使用してリモートホストを承認することを意味します
SSH
- そして、必要なコマンドがホスト上で実行され、メッセージが送り返されます
"Done!"
この問題に取り組むにはどうすればよいですか?
ユーザー プロファイル ページからリモート ホストへの SSH 接続を作成するにはどうすればよいですか?
セキュリティ上の理由から、ユーザーの秘密鍵を使用して接続を作成したいと考えています。関連する質問もいくつか見つけましたが、正しい方向がわかりませんでした:)
c# - バブリングの代わりにトンネリングを使用するRoutedCommands
MyControl
カスタムコマンドを公開するカスタムコントロール( )があります。Window
親がこのコマンドを呼び出せるようにしたいのですが、全員MyControls
がそれに反応する必要があります。
コマンドをMyControl
のCommandBindings
コレクションに追加しました。これは、CanExecute
常にtrueを返すコールバックも提供します。
私の問題は、このコマンドを呼び出すメニュー項目が有効にならないことです。これは、メニューがビジュアルツリーの上部にあるためだと思いますが、正直なところ、スコープが正確MyControls
にどのように機能するかについては少しあいまいです。RoutedUICommand
誰かが私が間違っていることを明確にすることができますか、またはこれが可能であるかどうか?
c# - Datatemplate内でCommandBindingを設定できません
以下は2つのxamlスニペットです。唯一の違いは、1つの例がウィンドウのビジュアルツリーに直接入力され、もう1つの例がDataContext
データテンプレートを適用して同じウィンドウを構築することです。
ビジュアルツリーコンテンツ/DataContext
ビジネスオブジェクトのコンテンツとデータテンプレート
最初の例(ビジュアルツリーコンテンツとデータコンテキスト)は、デザイナーが2番目の例でコンパイル時エラーを発生させている間は期待どおりに機能します。デリゲートタイプ。「デザイナエラーにもかかわらず、ルーティングされたコマンドハンドラが実行されていることを確認した場所で、アプリケーションをローカルで実行する場合があります。他のPCでアプリケーションを実行しようとすると、アプリケーションは起動時にサイレントに失敗し、Windowsイベントログにxamlロードエラーログエントリが残ります。2番目のスニペットからコマンドバインディングを削除すると、デザイナーエラーがなくなり、アプリケーションはローカルと他のPCの両方で問題なく実行されます。
誰かが例外の原因と、テンプレート内でコマンドバインディングを指定する方法を説明してください。
c# - ビューの分離、コマンドプレゼンテーション(テキスト、アイコン)、およびコマンドロジック(実行、実行)
TL; DRの場合:最後の段落を参照してください。
純粋なWPFは、プレゼンテーション(コントロール、テキスト、アイコン)をビューに配置し、コマンドロジック(Execute、CanExecuteメソッド)をコードビハインドに配置することを「提案」します。ビュー()とコードビハインドの両方にロジックを配置することに加えて、練習で眉をひそめることは、 XAMLの複製CommandBindings
にはまったく役立ちません:テキスト、アイコン、大きなアイコン、ヒント、およびその他の多数のプロパティは、コマンドのたびに複製する必要があります使用されるもの:メインメニュー、コンテキストメニュー、ツールバーボタン、リボンボタンおよびその他のコントロール。
DelegateCommand
最初の問題(ビューとロジックを本当に分離する)は、によって解決されるように見え、そのRelayCommand
ようなアプローチがあります。コマンドロジックはViewModels(またはMVVMCの場合はControllers)に移動され、コードビハインドはクリーンで、CommandBindings
ビューには意味がありません。
ただし、プレゼンテーションの重複の問題に対して一般的に受け入れられている解決策を見つけることができません。コマンド表示(テキスト、アイコン)とコマンドロジック(Execute
、CanExecute
メソッド)を分離したい。私が見つけたすべてのコードは、プレゼンテーションをコードに入れるか(andなどのRoutedCommand
追加のプロパティを使用してを作成することによって)、コードをプレゼンテーションに入れます(つまり、ハンドラーをビューとコードビハインドに入れます)。私も好きではありません。プレゼンテーションは完全にXAMLで、コードは完全にCS(ViewModelまたはController)である必要があると思います。Label
Icon
質問:ビュー(コマンドを参照するコントロールを備えたXAML)、コマンドの表示(すべてのコマンドのラベル、アイコンなど)、およびコマンドのロジック(ViewModelsまたはControllersのC#コードなどExecute
)を分離する方法は?CanExecute
wpf - ボタンがツールバーにある場合にのみコマンドバインディングが機能するのはなぜですか?
コマンド付きのボタンを含むツールバー付きのウィンドウがあります。ツールバーをボタンを含むスタックパネルに置き換えたため、ボタンが機能しなくなりました。
私の理解では、この音は何の違いもありません。ボタンにはまだCommandプロパティが設定されており、カスタムコマンドクラスでは何も変更せず、CommandBindingも同じです。これらは、ボタンよりも深いグリッドとユーザーコントロールに実装されていますが、ボタンがツールバーコントロールにある限り、機能します。
CommandBindingをウィンドウに直接実装すると、機能します(ただし、それは私が望んでいることではありません)
コードは次のとおりです(要約):
私はそれがコンパイルされないことを知っていますが、私はそれを単純化する必要がありました。これは、アプリで「StackPanel」を「ToolBar」に置き換えるとすぐに機能します。どうしてそれができるのでしょうか?
.net - プログラムがバックグラウンドで実行されているときの WPF MediaCommands
次のように、 .NET メディア コマンドの一部をルーティング コマンドとして MainWindowに実装したプログラムがあります。
プログラムが現在使用されている場合、これは正しく機能します。ただし、別のプログラムに切り替えて TogglePlayPause MediaCommand を送信すると、コマンドは起動されません (CanExecute は呼び出されません)。
バックグラウンドで実行されている場合でも、プログラムが常に MediaCommands に応答するようにする方法はありますか?
FWIWプログラムRdioはこれを実行できるようです。バックグラウンドで MediaCommand を送信すると、音楽が再生または一時停止されます。
ありがとうございました。
c# - RelayCommand と EventToCommand
Mvvmlightについて少し混乱していRelayCommand
ます。EventToCommand
をEventToCommand
処理し、EventTrigger
仕事RelayCommand
をするようです。そのような:
私の理解は正しいですか?
では、 を使用する必要はなく、をRelayCommand
直接使用できますか?EventTrigger
EventToCommand
ご協力いただきありがとうございます!
c# - コマンドをウィンドウの一部でのみ機能させる
私はこのxamlを持っています
およびこのコード ビハインド ファイル:
ご覧のとおり、ウィンドウに Cmd というコマンドがあります。ウィンドウ内には、黄色と緑色の 2 つの長方形があります。コマンド Cmd は、マウスが黄色の四角形でクリックされたときにのみ機能し、緑色の四角形では機能しません。どうすればこれを達成できますか?