Xamarin Picker选择的项目持久存储在多个页面上

时间:2017-10-30 03:34:17

标签: xamarin mvvm xamarin.ios xamarin.android xamarin.forms.labs

问题: 也许挑战可以这样说:我如何将内容页面中的单个属性绑定到Xamarin Forms中的全局存储变量?

详细信息: 我正在使用MVVM模式。我有一个导航内容页面(3个此类页面中的1个),其中包含一个Picker对象,该对象从collectionModel动态填充,并且所述模型是可读/写的。我试图通过所有3个内容页面来保留SelectedItem(或索引,无论哪个最合适),以便从页面到页面的导航显示相同的项目(从用户的角度来看)。我该怎么做?

我可以在ContentPage_Appearing()事件中手动设置Picker.SelectedIndex。我宁愿使用绑定。

1 个答案:

答案 0 :(得分:1)

请按照以下步骤操作:

  1. 创建一个静态类,如下所示:

    public static class DataClass
    {
       public static int PickerSelectedIndex = 0;
    }
    
  2. 在每个内容页面的xmlns:local标记中添加ContentPage,如下所示:

    xmlns:local="clr-namespace:DataPersist"
    
  3. 在每个页面的Xaml中绑定控件的数据,如下所示:

    <Picker  x:Name="picker" SelectedIndex="{x:Static local:DataClass.PickerSelectedIndex}">
    
  4. 它的工作原理如下:

    enter image description here