/ / Xamarin Picker vybratá položka, ktorá pretrváva na viacerých stránkach - xamarin, mvvm, xamarin.ios, xamarin.android, xamarin.forms.labs

Vybraná položka Xamarin Picker pretrváva na viacerých stránkach - xamarin, mvvm, xamarin.ios, xamarin.android, xamarin.forms.labs

Otázka: Možno by bolo možné túto výzvu uviesť týmto spôsobom: Ako môžem prepojiť jednu vlastnosť na obsahovej stránke s globálne uloženou premennou v Xamarin Forms?

podrobnosti: Používam vzor MVVM. Mám navigačnú stránku obsahu (1 z 3 takýchto stránok) s objektom Picker, ktorý je dynamicky naplnený z collectionModel a uvedený model je čítaný / zapisovaný. Pokúšam sa zotrvať v zozname SelectedItem (alebo indexe, podľa toho, čo je najvhodnejšie) prostredníctvom všetkých 3 obsahových stránok tak, aby navigácia zo stránky na stránku obsahovala rovnakú položku (z pohľadu používateľa). Ako by som to mal urobiť?

Môžem nastaviť Picker.SelectedIndex ručne v prípade ContentPage_Appearing (). Radšej by som použil viazanie.

odpovede:

1 pre odpoveď č. 1

Nasleduj tieto kroky:

  1. Vytvorte statickú triedu takto:

    public static class DataClass
    {
    public static int PickerSelectedIndex = 0;
    }
    
  2. Pridajte xmlns:local v ContentPage na každej obsahovej stránke, napríklad takto:

    xmlns:local="clr-namespace:DataPersist"
    
  3. Viazanie údajov pre ovládacie prvky na každej stránke s názvom Xaml:

    <Picker  x:Name="picker" SelectedIndex="{x:Static local:DataClass.PickerSelectedIndex}">
    

Funguje to takto:

tu zadajte popis obrázku