我有一个ContentView
订阅MessagingCenter
来自 ViewModel 的消息(为了通过不将视图耦合到 viewModel 来维护 mvvm 模式)。当收到消息时,ContentView
我希望它执行动画以使滑动视图可见,如下所示:
MessagingCenter.Subscribe<SideMenuViewModel>(this, "IsMenuOpen", async (sender) =>
{
if (sender.IsMenuOpen)
{
MainSwipeView.Open(OpenSwipeItem.RightItems);
await SwipeContent.ScaleYTo(1, 300, Easing.SinOut);
}
else
{
MainSwipeView.Close();
await SwipeContent.ScaleYTo(1, 300, Easing.SinOut);
}
});
此动画与我在同一文件上的其他事件侦听器中的动画相同,并且效果很好。但是,在MessagingCenter
执行链中工作正常,它调用动画方法但没有动画发生。
这可能是线程问题吗?我都试过了await
,BeginInvokeOnMainThread
但都没有奏效。