WPFの初心者は、このWPF Routed Command with Bindings per-Tabを読んでいました。WPF ComamndBinding Help on MenuItem
メニュータブは、ルールタブ(タブアイテム)が選択されるまで表示されず、メニューのSystem.Windows.Input.CommandBindingを表示する検索ダイアログが表示されます。私は間違って何をしていますか?
XAML:
<MenuItem Header="_Find..." IsEnabled="{Binding ElementName=RuleTab, Path=IsSelected}" >
<CommandBinding Command="Find" Executed="ExecuteFind" CanExecute="Find_CanExecute" ></CommandBinding>
</MenuItem>
は、コードビハインド:
private void ExecuteFind(object sender, ExecutedRoutedEventArgs e)
{
// Initiate FindDialog
FindDialog dlg = new FindDialog(this.RuleText);
// Configure the dialog box
dlg.Owner = this;
dlg.TextFound += new TextFoundEventHandler(dlg_TextFound);
// Open the dialog box modally
dlg.Show();
}
void dlg_TextFound(object sender, EventArgs e)
{
// Get the find dialog box that raised the event
FindDialog dlg = (FindDialog)sender;
// Get find results and select found text
this.RuleText.Select(dlg.Index, dlg.Length);
this.RuleText.Focus();
}
private void Find_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = RuleTab.IsSelected;
}
任意の提案をいただければ幸いです!
それを実感してください!回答した人に感謝します。その後、私のMenuItemで検索=コマンドを参照
<Window.CommandBindings>
<CommandBinding Command="Find" Executed="ExecuteFind" CanExecute="Find_CanExecute" ></CommandBinding>
</Window.CommandBindings>
:私がしなければならなかったすべては私にいるCommandBindingを移動しました。
提案内容に?質問はなんですか? – DHN
私の質問は、編集 - > Find FindDialogを表示するのではなくSystem.Windows.Input.CommandBindingをなぜ表示するのかをクリックすることです。私の最初の質問を編集:) –