Я столкнулся с одной проблемой с привязкой клавиш ввода команды. Здесь я объясняю свою ситуацию ... Я связал привязку клавиш команды ввода, как показано ниже,
<Window x:Class="DefaultBehavior_KeyBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.InputBindings>
<KeyBinding Key="F2" Command="{Binding TestCommand}"/>
</Window.InputBindings>
<Grid>
<Button Content="Add" Width="100" Height="35" Grid.Row="0" Name="EmptyButton" Click="EmptyButton_Click"/>
</Grid>
It works fine. Then i opened the new wpf child window in button click event like below,
public partial class MainWindow : Window
{
public ICommand TestCommand { get; private set; }
public MainWindow()
{
this.TestCommand = ........some command is attached here...
InitializeComponent();
this.DataContext = this;
}
private void EmptyTabButton_Click(object sender, RoutedEventArgs e)
{
Window childwindow = new Window() { Title = "ChildWindow", Width = 200, Height = 300 };
childwindow.Show();
}
}
После открытия дочернего окна привязка клавиш к главному окну не работает, когда дочернее окно находится в фокусе. Если я переключу фокус на главное окно, значит, все в порядке.
Я знаю, что и главное окно, и дочернее окно независимы друг от друга.
Но мой вопрос в том, как я могу сделать так, чтобы мое дочернее окно было сфокусировано, когда я привязал привязку клавиш только к главному окну. Я не хочу устанавливать эту привязку для каждого дочернего окна, потому что в моем случае я использую много дочерних окон.
Кто-нибудь, пожалуйста, предоставьте мне свое предложение?