Luego para implementar la interface:

Vale anotar que por nomenclatura una interface siempre debería ir antecedida de la vocal I (vease por ejemplo IComparable, ICommand existentes en .NET Framework).

Cada entidad debe implementar el código necesario para presentar el mensaje a sus tipos de usuario, por lo tanto cada una de las clases (UserControl de silverlight) quedarían de la siguiente forma:

Librería código C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Silverlight_CPOO_02_Herencia_Interfaces
{
    public partial class Libreria : UserControl, ICreadorMensaje
    {
        public Libreria()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(Libreria_Loaded);
        }

        void Libreria_Loaded(object sender, RoutedEventArgs e)
        {
            PanelDatos.DataContext = this;
        }

        public string Titulo { get; set; }

        public string Contenido { get; set; }

        public string De { get; set; }

        public string Para { get; set; }

        public void CrearMensaje(Panel panel)
        {
            panel.Children.Clear();
            panel.Children.Add(this);
        }
    }
}

Esta implementa el codigo necesario en el método CrearMensaje para poder mostrar al usuario final la oferta.

Pizzería código C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Silverlight_CPOO_02_Herencia_Interfaces
{
    public partial class Pizzeria : UserControl, ICreadorMensaje
    {
        public Pizzeria()
        {
            InitializeComponent();
            Loaded += new RoutedEventHandler(Pizzeria_Loaded);
        }

        void Pizzeria_Loaded(object sender, RoutedEventArgs e)
        {
            PanelDatos.DataContext = this;
        }

        public string Titulo { get; set; }

        public string Contenido { get; set; }

        public string De { get; set; }

        public string Para { get; set; }

        public void CrearMensaje(Panel panel)
        {
            panel.Children.Clear();
            panel.Children.Add(this);
            LayoutRoot.MouseEnter +=new MouseEventHandler(LayoutRoot_MouseEnter);
            LayoutRoot.MouseLeave +=new MouseEventHandler(LayoutRoot_MouseLeave);
        }

        private void LayoutRoot_MouseEnter(object sender, MouseEventArgs e)
        {
           LayoutRoot.Background = new SolidColorBrush(Colors.Blue);
        }

        private void LayoutRoot_MouseLeave(object sender, MouseEventArgs e)
        {
            LayoutRoot.Background = new SolidColorBrush(Colors.Red);
        }
    }
}

Se realiza exactamente lo mismo que con el objeto tipo Librería, con la variante que se generan 2 eventos, el primero para cuando el mouse se pose sobre el objeto Grid que contiene el mensaje y el otro para cuando el mouse sale fuera del área de este objeto. Así de esta forma y se puede presentar el mensaje con más colorido para los clientes preferidos.

Un evento es la capacidad que tiene un objeto para responder a determina acción, en nuestro caso, referente a la UI y el Mouse del usuario.

Anuncios

Páginas: 1 2 3