Пожалуйста, помогите.
У меня есть несколько экземпляров класса Action1.Каждый из них должен переходить на разные страницы сразу после завершения анимации.
Не имеет значения, что объект «вызван», он всегда перемещается на одну и ту же страницу.
Пока я использую метод Invoke, навигация работает правильно.
Похоже, что PageAnimation_Completed постоянно вызывается в одном и том же экземпляре объекта, почему?Как решить эту проблему?
У меня есть следующий класс:
public class Action1 : TriggerAction<DependencyObject>
{
PhoneApplicationPage page;
protected override void OnAttached() {
...
page = (PhoneApplicationPage)elem;
...
}
[System.Windows.Interactivity.CustomPropertyValueEditorAttribute(System.Windows.Interactivity.CustomPropertyValueEditor.Storyboard)]
public Storyboard PageAnimation { get; set; }
public static readonly DependencyProperty Message = DependencyProperty.Register("IsSpinning", typeof(Uri), typeof(Action1), null);
public Uri Page
{
get { return (Uri)GetValue(Message); }
set { SetValue(Message, value); }
}
protected override void Invoke(object o)
{
PageAnimation.Completed += new EventHandler(PageAnimation_Completed);
PageAnimation.Begin();
}
void PageAnimation_Completed(object sender, EventArgs e)
{
page.NavigationService.Navigate(new Uri("/" + this.Page.OriginalString, UriKind.RelativeOrAbsolute));
PageAnimation.Stop();
}
}