Створення команд в Silverlight/WinRT

Привіт! Коли розробляєш програми за допомогою технології Silverlight, обов’язково потрібно буде застосувати одну її можливість, яка називається команди.

Принцип досить простий – ви створюєте команду, яка повинна інкапсулювати та виконувати певну дію.

Створіть проект Silverlight, добавте новий клас та реалізуйте інтерфейс ICommand:

using System; using System.Windows.Input; namespace Sample { public class DisplayMessageCommand : ICommand { public bool CanExecute(object parameter) { throw new NotImplementedException(); } public void Execute(object parameter) { throw new NotImplementedException(); } public event EventHandler CanExecuteChanged; } }

Як бачите, перший метод описує те, чи може команда виконуватись, а другий якраз і повинен містити логіку виконання команди. Модифікуйте код наступним чином:

public class DisplayMessageCommand : ICommand { public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { MessageBox.Show("Hello"); } public event EventHandler CanExecuteChanged; }

Я зробив так, що дана команда може виконуватись в будь-якому випадку. Коли вона буде запущена, користувачу просто буде відображене повідомлення.

Тепер, давайте її підключимо до кнопки, яка буде знаходитись в головному вікні програми:

<UserControl x:Class="Sample.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Sample="clr-namespace:Sample" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.Resources> <Sample:DisplayMessageCommand x:Key="displayMessage"/> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="White"> <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="button1" VerticalAlignment="Top" Width="75" Command="{StaticResource displayMessage}" /> </Grid> </UserControl>

В даному коді, я розмістив команду в ресурсах та добавив кнопку, в якій я встановив значення для властивості Command:

Command="{StaticResource displayMessage}"

Цей тип зв’язування вказує на екземпляр команди, яка є розміщеною в ресурсах. Візьміть на замітку, що дана команда буде спрацьовувати при натисненні кнопки миші. Для запуску команди при спрацюванні іншої події, вам потрібно розглянути Expression Blend SDK.

Ось таким простим способом можна створювати і підключати команди.

Скачати код

Advertisements

, , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: