Xamarin Picker 选择的项目持续存在于多个页面上
Xamarin Picker selected item persisting on multiple pages
问题:
也许挑战可以这样表述:如何将内容页面中的单个 属性 绑定到 Xamarin Forms 中的全局存储变量?
详情:
我正在使用 MVVM 模式。我有一个导航内容页面(3 个这样的页面中的 1 个),其中包含一个从 collectionModel 动态填充的 Picker 对象,并且所述模型是 read/write。我试图通过所有 3 个内容页面保留 SelectedItem(或索引,以最合适的为准),以便从一个页面到另一个页面的导航显示相同的项目(从用户的角度来看)。我应该怎么做?
我可以在 ContentPage_Appearing() 事件中手动设置 Picker.SelectedIndex。我宁愿使用绑定。
按照以下步骤操作:
创建一个静态的class,像这样:
public static class DataClass
{
public static int PickerSelectedIndex = 0;
}
在每个内容页中添加xmlns:local
in ContentPage
标记,如下所示:
xmlns:local="clr-namespace:DataPersist"
在每个页面的 Xaml 中为您的控件绑定数据,如下所示:
<Picker x:Name="picker" SelectedIndex="{x:Static local:DataClass.PickerSelectedIndex}">
它是这样工作的:
问题: 也许挑战可以这样表述:如何将内容页面中的单个 属性 绑定到 Xamarin Forms 中的全局存储变量?
详情: 我正在使用 MVVM 模式。我有一个导航内容页面(3 个这样的页面中的 1 个),其中包含一个从 collectionModel 动态填充的 Picker 对象,并且所述模型是 read/write。我试图通过所有 3 个内容页面保留 SelectedItem(或索引,以最合适的为准),以便从一个页面到另一个页面的导航显示相同的项目(从用户的角度来看)。我应该怎么做?
我可以在 ContentPage_Appearing() 事件中手动设置 Picker.SelectedIndex。我宁愿使用绑定。
按照以下步骤操作:
创建一个静态的class,像这样:
public static class DataClass { public static int PickerSelectedIndex = 0; }
在每个内容页中添加
xmlns:local
inContentPage
标记,如下所示:xmlns:local="clr-namespace:DataPersist"
在每个页面的 Xaml 中为您的控件绑定数据,如下所示:
<Picker x:Name="picker" SelectedIndex="{x:Static local:DataClass.PickerSelectedIndex}">
它是这样工作的: