質問: たぶん、この課題は次のように述べることができます。コンテンツページの単一のプロパティをXamarinフォームのグローバルに保存された変数にどのようにバインドするのですか?
詳細: MVVMパターンを使用しています。 collectionModelから動的に生成されるPickerオブジェクトを含むナビゲーションコンテンツページ(3つのうち1つのページ)があり、モデルは読み書き可能です。ページからページへのナビゲーションが(ユーザーの観点から)同じアイテムを表示するように、3つのコンテンツページすべてにわたってSelectedItem(またはインデックス、どちらか適切な方)を永続化しようとしています。
ContentPage_Appearing()イベントでPicker.SelectedIndexを手動で設定できます。私はむしろバインディングを使用したいと思います。
回答:
回答№1は1次の手順を実行します:
このように静的クラスを作成します。
public static class DataClass { public static int PickerSelectedIndex = 0; }
追加する
xmlns:local
にContentPage
このように、各コンテンツページにマークを付けます。xmlns:local="clr-namespace:DataPersist"
このように、各ページのXamlでコントロールのデータをバインドします。
<Picker x:Name="picker" SelectedIndex="{x:Static local:DataClass.PickerSelectedIndex}">
それはこのように動作します: