动画我试图找出如何触发从我的视图模型动画在我的MVVM Xamarin窗体使用MVVM光框架应用程序没有崩溃我的应用程序。触发按钮按下
我已经了解到,动画不会在视图模型属于,所以我搬到这个逻辑视图。
当按下一个按钮(在我的视图模型绑定到的命令)将消息发送从我的视图模型到我的视图触发动画。
视图模型代码:
public class GamePageViewModel : ViewModelBase
{
private readonly IDialogService _dialogService;
public ICommand NextRoundCommand
{
get
{
return new RelayCommand(() =>
{
NextButtonEnabled = false;
_game.MoveToNextRound();
UpdateOnScreenText();
NextButtonEnabled = true;
},()=> false);
}
}
private bool _nextButtonEnabled = false;
public bool NextButtonEnabled
{
get { return _nextButtonEnabled; }
set
{
_nextButtonEnabled = value;
RaisePropertyChanged(()=>NextButtonEnabled);
}
}
private void UpdateOnScreenText()
{
Messenger.Default.Send(new StartEnlargeAnimationMessage());
Item1Text = _game.CurrentRound.OpenCards[0].Name;
}
}
在我的XAML视图背后的代码,我有一个执行动画的方法。
查看代码:
public partial class GamePage : ContentPage
{
public GamePage(GamePageViewModel gamePageViewModel)
{
BindingContext = gamePageViewModel;
InitializeComponent();
Messenger.Default.Register<StartEnlargeAnimationMessage>(this, PlayEnlargeAnimation);
}
//private bool playingAnimation = false;
private async void PlayEnlargeAnimation(StartEnlargeAnimationMessage message)
{
await RoundLabel.ScaleTo(2, 500, Easing.CubicIn);
await RoundLabel.ScaleTo(1, 500, Easing.CubicIn);
}
这工作有点。
的问题是,当用户点击该按钮两次(快速,主动动画中)我得到一个错误“试图当它已经完成了任务过渡到最终状态”。
这个问题似乎是很多个月的已知问题,但还没有固定的(https://bugzilla.xamarin.com/show_bug.cgi?id=41016)。
正如在这个错误报告我试图解决这个办法的意见建议是尽量隐藏/关闭按钮,但尚未发现这样做的全成的方式。
我也试着同步调用动画。
如果您有任何关于如何解决这种情况的见解,将不胜感激。
我(还小),代码库可以在这里找到:https://github.com/sjorsmiltenburg/Cyclades.Shuffler/tree/develop