ВУЗ:
Составители:
Рубрика:
108
public string PropertyActedOn
{get; set;}
public object PreviousState
{get; set;}
public CommandHistoryItem(string commandName)
: this(commandName, null, «», null)
{ }
public CommandHistoryItem(string commandName, UIElement elementActedOn,
string propertyActedOn, object previousState)
{
CommandName = commandName;
ElementActedOn = elementActedOn;
PropertyActedOn = propertyActedOn;
PreviousState = previousState;
}
public bool CanUndo
{
get { return (ElementActedOn != null && PropertyActedOn != «»); }
}
public void Undo()
{
Type elementType = ElementActedOn.GetType();
PropertyInfo property = elementType.GetProperty(PropertyActedOn);
property.SetValue(ElementActedOn, PreviousState, null);
}
}
Следующим необходимым компонентом является команда, которая
будет выполнять действие Undo в масштабах приложения. Как уже было
сказано выше, команда ApplicationCommands.Undo для этого не подходит,
поскольку она уже используется для отдельных элементов управления с
другой целью. Поэтому нужно создать новую команду, как показано ни-
же:
private static RoutedUICommand applicationUndo;
public static RoutedUICommand ApplicationUndo
Страницы
- « первая
- ‹ предыдущая
- …
- 107
- 108
- 109
- 110
- 111
- …
- следующая ›
- последняя »