在Xamarin.Forms中使用Prism更改VisualElement的VisualState

时间:2019-01-15 16:07:25

标签: mvvm xamarin.forms prism visualstatemanager

如何从Prism ViewModel更改元素的VisualState? 我可以使用可绑定属性吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

要更改元素的视觉状态,可以从页面的代码隐藏中进行操作,如下所示:

VisualStateManager.GoToState(yourViewElement, yourViewElementState);

但是,这不是最好的建议,但是您可以从背后的代码中订阅视图模型中的更改,然后调用VisualStateManager。

示例

YourPage()
{
    viewModel.PropertyChanged += FooChanged;
}

public void FooChanged()
{
     if (!args.PropertyName.Equals("YourProperty"))
     {
          VisualStateManager.GoToState(yourViewElement, yourViewElementState);
     }
        return;
}

答案 1 :(得分:0)

在本文中找到了解决方案,并在XAML页面上添加了一个Behavior: https://forums.xamarin.com/discussion/127531/behavior-bindableproperty-not-update