diff --git a/src/WindowsStateTriggers/HostedStateTrigger.cs b/src/WindowsStateTriggers/HostedStateTrigger.cs
index 41b5cde..3168414 100644
--- a/src/WindowsStateTriggers/HostedStateTrigger.cs
+++ b/src/WindowsStateTriggers/HostedStateTrigger.cs
@@ -1,4 +1,5 @@
-using Windows.ApplicationModel.Core;
+using System;
+using Windows.ApplicationModel.Core;
using Windows.UI.Xaml;
namespace WindowsStateTriggers
@@ -6,20 +7,20 @@ namespace WindowsStateTriggers
///
/// A state trigger for determining if the app is in a hosted state (for example, if share is being used)
///
- public class HostedStateTrigger : StateTriggerBase
+ public class HostedStateTrigger : StateTriggerBase, ITriggerValue
{
///
/// Identifies the dependency property.
///
public static readonly DependencyProperty IsHostedProperty = DependencyProperty.Register(
- "IsHosted", typeof (HostedState), typeof (HostedStateTrigger), new PropertyMetadata(HostedState.Unknown, OnIsHostedRequiredChanged));
+ "IsHosted", typeof(HostedState), typeof(HostedStateTrigger), new PropertyMetadata(HostedState.Unknown, OnIsHostedRequiredChanged));
///
/// Gets or sets the is hosted value.
///
public HostedState IsHosted
{
- get { return (HostedState) GetValue(IsHostedProperty); }
+ get { return (HostedState)GetValue(IsHostedProperty); }
set { SetValue(IsHostedProperty, value); }
}
@@ -41,11 +42,11 @@ private void UpdateStateTrigger()
var isHosted = CoreApplication.GetCurrentView().IsHosted;
if (isHosted)
{
- SetActive(IsHosted == HostedState.Hosted);
+ IsActive = IsHosted == HostedState.Hosted;
}
else
{
- SetActive(IsHosted == HostedState.NotHosted);
+ IsActive = IsHosted == HostedState.NotHosted;
}
}
@@ -69,5 +70,34 @@ public enum HostedState
///
NotHosted
}
+
+ #region ITriggerValue
+
+ private bool m_IsActive;
+
+ ///
+ /// Gets a value indicating whether this trigger is active.
+ ///
+ /// true if this trigger is active; otherwise, false.
+ public bool IsActive
+ {
+ get { return m_IsActive; }
+ private set
+ {
+ if (m_IsActive != value)
+ {
+ m_IsActive = value;
+ base.SetActive(value);
+ IsActiveChanged?.Invoke(this, EventArgs.Empty);
+ }
+ }
+ }
+
+ ///
+ /// Occurs when the property has changed.
+ ///
+ public event EventHandler IsActiveChanged;
+
+ #endregion ITriggerValue
}
}
diff --git a/src/WindowsStateTriggers/ITriggerValue.cs b/src/WindowsStateTriggers/ITriggerValue.cs
index c3e48a6..900f8f8 100644
--- a/src/WindowsStateTriggers/ITriggerValue.cs
+++ b/src/WindowsStateTriggers/ITriggerValue.cs
@@ -1,8 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace WindowsStateTriggers
{