using System;
using System.Collections.Generic;
namespace FWindSoft.MVVM
{
public class CommandAdapter
{
public object Tag { get; set; }
///
/// 自定义事件BeforeCommand
///
public event EventHandler BeforeCommand;
///
/// 自定义事件AfterCommand
///
public event EventHandler AfterCommand;
///
/// 在命令执行之前执行的方法
///
///
public void DoBeforeCommand(CommandEventArgs args)
{
EventHandler handler = this.BeforeCommand;
if (handler != null)
handler(this, args);
}
///
/// 在命令执行之后执行的方法
///
///
public void DoAfterCommand(CommandEventArgs args)
{
EventHandler handler = this.AfterCommand;
if (handler != null)
handler(this, args);
}
internal List m_Commands = new List();
public IEnumerable Commands { get { return m_Commands; } }
///
/// 刷新所有的命令
///
public void RefreshAllCommands()
{
foreach (BaseCommand itemCommand in Commands)
{
itemCommand.RaiseExecuteChanged();
}
}
EventHandler m_RequerySuggested;
///
/// 注册事件
///
public CommandAdapter()
{
m_RequerySuggested = new EventHandler(CommandManager_RequerySuggested);
System.Windows.Input.CommandManager.RequerySuggested += m_RequerySuggested;
}
void CommandManager_RequerySuggested(object sender, EventArgs e)
{
RefreshAllCommands();
}
}
}