diff --git a/Perspex.Controls/ListBoxItem.cs b/Perspex.Controls/ListBoxItem.cs
index e567dc9de6..8cb00c18f4 100644
--- a/Perspex.Controls/ListBoxItem.cs
+++ b/Perspex.Controls/ListBoxItem.cs
@@ -1,17 +1,15 @@
// -----------------------------------------------------------------------
//
-// Copyright 2014 MIT Licence. See licence.md for more information.
+// Copyright 2015 MIT Licence. See licence.md for more information.
//
// -----------------------------------------------------------------------
namespace Perspex.Controls
{
- using System;
- using Perspex.Controls.Primitives;
- using Perspex.Interactivity;
+ using Perspex.Controls.Mixins;
///
- /// An selectable item in a .
+ /// A selectable item in a .
///
public class ListBoxItem : ContentControl, ISelectable
{
@@ -26,8 +24,7 @@ namespace Perspex.Controls
///
static ListBoxItem()
{
- Control.PseudoClass(IsSelectedProperty, ":selected");
- IsSelectedProperty.Changed.Subscribe(IsSelectedChanged);
+ SelectableMixin.Attach(IsSelectedProperty);
}
///
@@ -38,19 +35,5 @@ namespace Perspex.Controls
get { return this.GetValue(IsSelectedProperty); }
set { this.SetValue(IsSelectedProperty, value); }
}
-
- ///
- /// Called when the property changes on an object.
- ///
- /// The sender.
- private static void IsSelectedChanged(PerspexPropertyChangedEventArgs e)
- {
- var interactive = e.Sender as IInteractive;
-
- if (interactive != null)
- {
- interactive.RaiseEvent(new RoutedEventArgs(SelectingItemsControl.IsSelectedChangedEvent));
- }
- }
}
}
diff --git a/Perspex.Controls/MenuItem.cs b/Perspex.Controls/MenuItem.cs
index 393582c2d4..d1f901aefc 100644
--- a/Perspex.Controls/MenuItem.cs
+++ b/Perspex.Controls/MenuItem.cs
@@ -10,13 +10,14 @@ namespace Perspex.Controls
using System.Collections.Generic;
using System.Linq;
using System.Windows.Input;
+ using Perspex.Controls.Mixins;
+ using Perspex.Controls.Presenters;
using Perspex.Controls.Primitives;
+ using Perspex.Controls.Templates;
using Perspex.Input;
using Perspex.Interactivity;
- using Perspex.Controls.Templates;
- using Perspex.Controls.Presenters;
- using Perspex.VisualTree;
using Perspex.Threading;
+ using Perspex.VisualTree;
using Splat;
///
@@ -87,6 +88,7 @@ namespace Perspex.Controls
///
static MenuItem()
{
+ SelectableMixin.Attach