問題タブ [icommand]
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# - CommandParameter が設定されていても ICommand.CanExecute が null を渡される
派生オブジェクトContextMenu
のセットに をバインドし、スタイルを介してそれぞれにおよびプロパティを設定するというトリッキーな問題があります。ICommand
Command
CommandParameter
MenuItem
ただし、ICommand.Execute( object )
必要に応じて選択されたメモのセットが渡されICommand.CanExecute( object )
ますが (メニューの作成時に呼び出されます)、null が渡されます。確認したところ、選択したメモ コレクションは、呼び出しが行われる前に適切にインスタンス化されています (実際には、宣言で値が割り当てられているため、決して ではありませんnull
)。CanEvaluate が渡される理由がわかりませんnull
。
wpf - ItemTemplate CheckBox の Command プロパティを ViewModel オブジェクトのプロパティにバインドする方法は?
疑似コードでこの質問をさせてください:
" Contacts
" は、ウィンドウの DataContext として設定された ViewModel オブジェクトです。
「連絡先」には、「PersonCollection」、public ICommand PersonSelectedCommand プロパティがあります。"PersonCollection" はリスト
"Person" には Name、Age プロパティがあります
CheckBox が存在しないオブジェクト "person" の ICommand "PersonSelectedCommand" プロパティを見つけてバインドしようとしているため、現在これは機能していません。
CheckBox をオブジェクト "Contact" の ICommand "PersonSelectedCommand" プロパティにバインドする方法
よろしく
お願いいたします。
wpf - WPF CommandBinding はトップ レベルの item/Window/this ではありません
私が望んでいたのは、タブごとに異なるバインドが必要だったので、タブを切り替えるとコマンドの可用性が切り替わりました。CommandBindings はそのように機能すると思いました。
しかし、この単純なサンプルを機能させるために最後の時間を費やしました。私が根本的に誤解している (そしてそれが最初ではない) か、何かが間違っているかのどちらかです。
CommandBinding を textBoxA に追加しますが、textBoxB には追加しません。それらの間を移動すると、対応するコマンドに設定されているボタンが有効または無効になります。
Window に CommandBinding を追加すると、ボタンは問題なく有効になりますが、そのようなものは、アイテム固有の CommandBinding の要点全体を殺します。
この XAML の使用
このコード ビハインドの使用
このコードを試してみると、あるテキストボックスから別のテキストボックスに移動しても、ボタンが無効のままであることがわかります。(ただし、textBoxA はボタンの CommandBinding を実装しているため、ボタンを有効にする必要があります)。
これはどのように機能するはずですか?
前もって感謝します。
.net - CommandConverter - 有効な例外または .NET バグ
C#/.NET アプリケーションで次のような例外が発生します。
「CommandCoverter」は「MyNamespace.MyDerivedFromICommandSubclass」を「System.String」に変換できません。
MSDN ICommandドキュメントで説明されているように、私がやっていることはかなり簡単です。
ハイパーリンクを含むFlowDocumentがあります。ハイパーリンクにはコマンドプロパティを含めることができます。これを派生した ICommand に設定して、リンクがクリックされたときにカスタム アクションが実行されるようにします。
その部分は機能します。
ここで問題が発生します。ハイパーリンクを選択して [コピー] を右クリック (または Control-C を押す) した場合です。
.NET フレームワークはすぐに、上記の例外の詳細とともに System.NotSupportedException をスローします。スタック トレースは次を示します。
System.ComponentModel.TypeConverter.GetConvertToException (オブジェクト値、型 destinationType)
で System.Windows.Input.CommandConverter.ConvertTo (ITypeDescriptorContext コンテキスト、CultureInfo カルチャ、オブジェクト値、型 destinationType) で
この時点で、私はRed Gate の無料の .NET Reflectorに頼り、ソース コードを調べてConvertTo
次のことを行いました。
このすべてが .NET 内で発生するため、問題は次のようになります。何か間違ったことをしているのでしょうか。または、これは .NET のバグですか? もしそうなら、回避策はありますか?
助けてくれてありがとう。
silverlight - コードビハインドでUI固有のイベントを使用するMVVM
コントロールがほとんどないSilverlightページがあり、すべての動作がデータバインドされていません。たとえば、RichTextBoxはTextプロパティのデータバインドされています。ただし、太字、斜体、番号などのコントロールの動作は、コントロールの上にあるツールバーのボタンクリックイベントから駆動されます。これらのコントロールはデータの値を変更しますが、実際にはデータを保存/取得しません。では、ViewModelでICommandオブジェクトを作成するよりも、SilverlightページのコードビハインドページにそのようなUIイベントを保持しても大丈夫ですか?
MVVMは、モデルと内部的に対話するために、ビューがViewModelと対話する必要があると言っています。ここでは、ビューはモデルではなくビューを更新しているだけです。それで、そのようなイベントのコードビハインドは問題ありませんか?
wpf - ICommand が実行されたかどうかをテストする
私の質問は次のとおりです: ICommand の Execute メソッドがモック オブジェクトで呼び出されたかどうかをテストするにはどうすればよいですか?
私は次のコードを使用しています:
UCOperandViewModel にも EditCommand ICommand があることをここで指定する必要があり、toolbarTrayVM で EditCommand.Execute を呼び出したときにその ICommand が実行されるかどうかをテストしたいと考えています。
Verify の呼び出しで ArgumentException が発生します。「指定された引数に一致するコンストラクターがモックされた型で見つかりませんでした。」と表示されます。
前もって感謝します。
silverlight - ICommandにEventArgを設定するにはどうすればよいですか?
VMで、ICommandを次のように設定します。
xamlでは、次のようなこのコマンドへのバインド
次に、アプリを実行します。文字列をEventArgsに変換できないと表示されます。
ICommandバインディングにEventArgsを設定するにはどうすればよいですか?
silverlight - コードを XAML コード ビハインドから除外することの本当の利点は何ですか?
Silverlight コミュニティでは、XAML のコード ビハインド ファイルを可能な限りコードから解放するために多くの努力が払われています。この背後にある本当の動機は何ですか?
たとえば、イベント ハンドラの代わりにコマンドを使用する利点は何ですか? 私が持っている場合
では、なぜこれが好まれるのでしょうか。
明らかSaveCommand
に私のビューモデルの が効果的に呼び出す場所SaveChanges()
。
これにより、ビューが 100% XAML であり、ビュー モデルが XAML でインスタンス化されていて、ビューとビュー モデル間の接続がバインディングによって完全に行われている状況が発生する可能性があります。確かにそれはきれいですが、それ以外は何ですか?フレキシブル?なんで?ビューは引き続き適切な ViewModel で動作する必要があるため、2 つの間の接続が存在し、暗黙的である場合は、それをより明示的にしないでください。また、コンパイル時のサポートが失われるという欠点もあります。存在しないイベント ハンドラにボタンを接続すると、コンパイラが教えてくれます。存在しないコマンドにバインドすると、そうはなりません。
c# - MVVMチュートリアル、RelayCommand、ラムダの使用を理解するのに助けが必要
JoshSmithのWPFアプリとModel-View-ViewModelデザインパターンのチュートリアル を読んでいます
以下のコードが何をしようとしているのかわかりません。
まず、構文はプロパティを思い出させますが、代わりにadd/removeを使用します。
しかし、何CommandManager.RequerySuggested
ですか?
これは、イベントサブスクリプションをCommandManager.RequerySuggestedイベントに委任します。これにより、WPFコマンドインフラストラクチャは、組み込みコマンドを要求するたびに実行できるかどうかをすべてのRelayCommandオブジェクトに要求します。
また、saveコマンドはラムダで構成されています。1つ目は、2つのパラメーター変数があります。彼らは対立しますか?私はただのようなことをすることはできません、RelayCommand(this.Save(), this.CanSave)
またはそのような構文はありません。
wpf - WPFのMVC(mvvmではない)?
WPF の ViewModel にコントローラー関連のコード (ICommand を理解する) を含めるのは好きではありません。それを分離して古き良きMVC for WPFに戻すためのフレームワークはありますか?
取得したいもの: - XAML のビュー - ビュー モデル - モデル - コマンド ハンドラー