Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Упражнение 5. Привязка команд в процедурном коде






Частично повторим предыдущее упражнение, но привязку команд выполним в процедурном коде.

  • Добавьте к решению командой File/Add/New Project новый проект с именем BindingCommandsCode и назначьте его стартовым


увеличить изображение

  • Откорректируйте разметку окна Window1 так
< Window x: Class=" BindingCommandsCode.Window1" xmlns=" https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x=" https://schemas.microsoft.com/winfx/2006/xaml" Title=" Window1: Кодовая привязка" Height=" 300" Width=" 300" Background=" #FFD4D0C8" WindowStartupLocation=" CenterScreen" > < StackPanel Margin=" 5" > < Menu> < MenuItem Header=" _File" > < MenuItem Command=" ApplicationCommands.Open" /> < MenuItem Command=" ApplicationCommands.Save" /> < /MenuItem> < /Menu> < Button Margin=" 5" Padding=" 5" Focusable=" False" Command=" ApplicationCommands.Open" Content=" Open" /> < Button Margin=" 5" Padding=" 5" Focusable=" False" Command=" ApplicationCommands.Save" Content=" Save" /> < /StackPanel> < /Window>

Заметьте, что в этой разметке отсутствует как секция привязки команд, так и ссылки на обработчики команд. Все это мы выполним в процедурной части окна.

  • Внесите следующие изменения в класс Window1 файла процедурного кода Window1.xaml.cs
public partial class Window1: Window { public Window1() { InitializeComponent(); // Регистрация обработчика this.Loaded += new RoutedEventHandler(Window1_Loaded); } void Window1_Loaded(object sender, RoutedEventArgs e) { // Привязка команд в коде CommandBinding binding = new CommandBinding(); binding.Command = ApplicationCommands.Open; binding.Executed += new ExecutedRoutedEventHandler(OpenCommand_Executed); this.CommandBindings.Add(binding); binding = new CommandBinding(); binding.Command = ApplicationCommands.Save; binding.Executed += new ExecutedRoutedEventHandler(SaveCommand_Executed); this.CommandBindings.Add(binding); } void OpenCommand_Executed(object sender, ExecutedRoutedEventArgs e) { MessageBox.Show(" Выполнена команда Open"); } void SaveCommand_Executed(object sender, ExecutedRoutedEventArgs e) { MessageBox.Show(" Выполнена команда Save"); } }
  • Запустите приложение и убедитесь в работоспособности механизма команд WPF

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.