Упражнение 5. Привязка команд в процедурном коде
Частично повторим предыдущее упражнение, но привязку команд выполним в процедурном коде.
- Добавьте к решению командой File/Add/New Project новый проект с именем BindingCommandsCode и назначьте его стартовым
увеличить изображение
- Откорректируйте разметку окна Window1 так
<Window x:Class="BindingCommandsCode.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://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
Дата добавления: 2015-04-15; просмотров: 773;