Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Упражнение 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
|