Files
MicrosoftIris/UIX/Microsoft/Iris/ModelItems/UICommand.cs
T

61 lines
1.6 KiB
C#
Raw Normal View History

2022-03-03 08:14:05 -06:00
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.ModelItems.UICommand
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
// Assembly location: C:\Program Files\Zune\UIX.dll
using Microsoft.Iris.Library;
using Microsoft.Iris.Markup;
using Microsoft.Iris.Session;
namespace Microsoft.Iris.ModelItems
{
internal class UICommand : NotifyObjectBase, IUICommand
{
private bool _availableFlag = true;
private InvokePriority _priority;
public virtual bool Available
{
get => _availableFlag;
set
{
if (_availableFlag == value)
return;
_availableFlag = value;
FireNotification(NotificationID.Available);
}
}
public InvokePriority Priority
{
get => _priority;
set
{
if (_priority == value)
return;
_priority = value;
FireNotification(NotificationID.Priority);
}
}
public void Invoke()
{
if (Priority == InvokePriority.Normal)
InvokeWorker();
else
DeferredCall.Post(DispatchPriority.Idle, new SimpleCallback(InvokeWorker));
}
public void InvokeWorker()
{
FireNotification(NotificationID.Invoked);
OnInvoked();
}
protected virtual void OnInvoked()
{
}
}
}