Кнопка WPF не реагирует на какое-либо событие

Вопрос: У меня есть простое окно WPF, довольно простое, TextBlock окно и Button. Однако кнопка ничего не реагирует. Нет, если я надвигаю указатель мыши на него, и если я его нажму. Линия от кнопки: Код полного окна:

Вопрос:

У меня есть простое окно WPF, довольно простое, TextBlock окно и Button. Однако кнопка ничего не реагирует. Нет, если я надвигаю указатель мыши на него, и если я его нажму.

Линия от кнопки:

<Button Margin=»3″ Command=»Close» Content=»Ok» Width=»50″/>

Код полного окна:

<Window x:Class=»Launcher.XAML.MessageWindow» xmlns=»http://schemas.microsoft.com/winfx/2006/xaml/presentation» xmlns:x=»http://schemas.microsoft.com/winfx/2006/xaml» x:Name=»self» Title=»{Binding ElementName=self, Path=Caption}» Height=»194″ Width=»477″> <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source=»Styles.xaml» /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height=»*» /> <RowDefinition Height=»Auto» /> </Grid.RowDefinitions> <TextBlock VerticalAlignment=»Stretch» HorizontalAlignment=»Stretch» Text=»{Binding ElementName=self, Path=Message}» Margin=»10″ TextWrapping=»Wrap» /> <StackPanel Grid.Row=»1″ HorizontalAlignment=»Right» Orientation=»Horizontal»> <Button Margin=»3″ Command=»Close» Content=»Ok» Width=»50″/> </StackPanel> </Grid> Лучший ответ:

Вам нужно указать свои CommandBindings и Button следующим образом:

<Window.CommandBindings> <CommandBinding Command=»ApplicationCommands.Close» Executed=»CloseCommandHandler» CanExecute=»CanExecuteHandler» /> </Window.CommandBindings> …. <Button Margin=»3″ Command=»ApplicationCommands.Close» Content=»Ok» Width=»50″/>

Затем настройте обработчики Executed и CanExecute:

private void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e) { //Do something } private void CanExecuteHandler(object sender, CanExecuteRoutedEventArgs e) { //Determine whether handler can execute e.CanExecute = true; }

Надеюсь это поможет.

Ответ №1

Все зависит от того, что в вашем Styles.xaml. Попробуйте прокомментировать это и посмотрите, работает ли это.

Ответ №2

Там migth будет проблемой с привязкой к команде Close. Что нужно посмотреть (и, возможно, показать нам):

  • что DataContext представления установлен правильно
  • как реализована команда, возвращаемая свойством Close в viewmodel…
Оцените статью
Добавить комментарий