2013-05-25

 

This mediator is a generic implementation of the Mediator pattern, you can send and receive any messages and pass an object with it. You also can send and receive an object directly.

 

alt

 

Usage

<UserControl x:Class="DW.SharpTools.Demo.MediatorControl"
			 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
			 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
			 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
			 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
			 mc:Ignorable="d" 
			 d:DesignHeight="300" d:DesignWidth="300">
	<StackPanel>
		<TextBox x:Name="message" />
		<Button Margin="5" Content="Send" Click="Send_Click" HorizontalAlignment="Center" />
	</StackPanel>
</UserControl>
using System.Windows.Controls;

namespace DW.SharpTools.Demo
{
	public partial class MediatorControl : UserControl
	{
		public MediatorControl()
		{
			InitializeComponent();
		}

		private void Send_Click(object sender, System.Windows.RoutedEventArgs e)
		{
			Mediator.SendMessage(Messages.UserMessage, message.Text);
		}
	}
}
namespace DW.SharpTools.Demo
{
	public class Listener
	{
		public Listener()
		{
			Mediator.ListenForMessage(Messages.UserMessage, MessageSend);
		}

		private void MessageSend(object argument)
		{
			var message = argument.ToString();
		}
	}
}
namespace DW.SharpTools.Demo
{
	public enum Messages
	{
		UserMessage
	}
}