Files
ZuneShell.dll/ZuneShell/ZuneUI/NotifyChoice.cs
T

51 lines
1.4 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.NotifyChoice
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
using Microsoft.Iris;
using System;
using System.Collections;
namespace ZuneUI
{
public class NotifyChoice : Choice
{
private InvokePolicy _invokePolicy;
public NotifyChoice()
: this(null)
{
}
public NotifyChoice(IModelItemOwner owner)
: this(owner, InvokePolicy.Synchronous)
{
}
public NotifyChoice(IModelItemOwner owner, InvokePolicy invokePolicy)
: base(owner)
=> this._invokePolicy = invokePolicy;
protected override void OnChosenChanged()
{
if (this.ChosenValue == null)
return;
((Command)this.ChosenValue).Invoke(this._invokePolicy);
}
protected override void ValidateOptionsListWorker(IList potentialOptions)
{
base.ValidateOptionsListWorker(potentialOptions);
if (potentialOptions == null)
return;
foreach (object potentialOption in potentialOptions)
{
if (!(potentialOption is Command))
throw new ArgumentException("Contents must be of type Command");
}
}
}
}