4つの四角形を含むグリッドを持つWPFウィンドウがあります。そのうちの1つに、アプリケーションで使用されているページを表示するための<frame>
があります。私はこれらのボタンにコマンドを追加したいと思う。フレームでウィンドウ内のコマンドを起動できません
私が使用していること:MVVM、ウィンドウとしてMainwindow
、ページをコンテンツパブリッシャーとしてフレームに入れました。
たとえば、ボタンとコマンドでapplicationwideにログインしたいとします。私のフレームのページでこれを行っている間、エラーはありませんが、私はウィンドウ内で同じことをすることはできません。
フレーム内のページに移動中にウィンドウがフォーカスを失っても、そのイベントを起動できないのではないかと疑問に思っていました。
私のpublic ICommand CommandWhichDoesNotFire;
public MainViewModel()
{
MessageBox.Show("VM is real");
CommandWhichDoesNotFire= new TestCommand();
}
DataContext
:私のViewModel
「MainViewModel」私は公共ICommand
プロパティを持っていると私は、コンストラクタでそれを初期化するには
<Button Content="" FontFamily="Segoe UI Symbol"
Command="{Binding CommandWhichDoesNotFire, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type vw:MainViewModel}}}"
Width="32">
:だから私は、次のコマンドを結合して、ウィンドウを取得しようとしましたMainViewが裏コードに設定されているBEFORE InitilizeComponents();
ボタンをクリックしても、自分のコマンドの呼び出しが開始されません。それは単に全く発射しません。私は何を失っているのですか?
最小限のウィンドウとDataContextの設定方法により、さらにコードを投稿できますか?それなしであなたを助けるのは難しいです。 – XAMlMAX
あなたのVSコンソール出力にバインディングエラーが報告されていますか? Snoopを起動してバインドが成功したかどうか確認できますか? – LordWilmore