По наследству это довольно легко сделать.
Вот, например, таблица данных, которая запускает событие проверки при нажатии клавиши ввода.
namespace SLCommon
{
public delegate void VaditateSelectionEventHandler(object sender, EventArgs e);
/// <summary>
/// Fires a validate event whenever the enter key or the left mouse button is pressed
/// </summary>
public class EventDatagrid : DataGrid
{
public event VaditateSelectionEventHandler Validate;
public EventDatagrid()
: base()
{
this.MouseLeftButtonUp += new MouseButtonEventHandler(OnMouseLeftButtonUp);
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key != Key.Enter)
base.OnKeyDown(e);
else
{
e.Handled = true;
Validate(this, e);
}
}
protected void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Validate(this, e);
}
}
}
Сторона XAML:
<slc:EventDatagrid x:Name="toto" Validate="toto_Validate"
AutoGenerateColumns="True" IsReadOnly="True" Width="auto" MaxHeight="300">
</slc:EventDatagrid>
Обратите внимание на обработчик события Validate.
Здесь после того, как вы можете добавить элемент управления myobj в файл xaml (обязательно укажите правильное пространство имен xmlns:
в верхней части вашей страницы) и установите его свойство.
Не знаю о смеси, но она точно так же работает.