|
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Interactivity;
using System.Windows.Markup;
using System.Linq;
namespace Slex.Lib.Interactions
{
/// <summary>
/// The base class for all slex triggers
/// </summary>
public abstract class SlexTriggerAction : System.Windows.Interactivity.TriggerAction<FrameworkElement>
{
protected bool initialized = false;
public SlexTrigger TriggerContext { get; set; }
/// <summary>
/// Does the internal initializations
/// </summary>
internal virtual void InternalInitialize()
{
if (Conditions != null)
{
Conditions.ToList().ForEach(c =>
{ c.TriggerContext = TriggerContext; c.AssociatedObject = this.AssociatedObject; c.InternalInitialize(); });
}
Initialize();
}
/// <summary>
/// Invokes a trigger
/// </summary>
/// <param name="parameter"></param>
protected override void Invoke(object parameter) { }
/// <summary>
/// Initialize
/// </summary>
protected virtual void Initialize() { }
/// <summary>
/// Conditional invoking for supporting switch case default style constructs
/// </summary>
/// <param name="parameter"></param>
internal abstract void InvokeConditional(object parameter);
/// <summary>
/// A set of execution conditions
/// </summary>
public InvokingConditions Conditions
{
get { return (InvokingConditions)GetValue(ConditionsProperty); }
set { SetValue(ConditionsProperty, value); }
}
// Using a DependencyProperty as the backing store for Conditions. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ConditionsProperty =
DependencyProperty.Register("Conditions", typeof(InvokingConditions), typeof(SlexTriggerAction), new PropertyMetadata(null));
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Architect, Developer, Speaker | Wannabe GUT inventor & Data Scientist | Microsoft MVP in C#