Hoe het standaard element in een SearchPicker vastzetten?

0000002869     -      25-11-2019

Zonder specifieke parametrering toont een SearchPicker deze waarde bij het tonen:

  1. Als het is gekoppeld aan een tabel van strings: geen waarde
  2. Als het is gekoppeld aan een tabel van ItemDescriptors: de eerste waarde
  3. Als het is gekoppeld aan een lijst van elementen die uit Mercator komen: het eerste element in alfabetische volgorde.

Soms is het gewenst om dit gedrag te wijzigen, hetgeen via de property DefaultIndexOrId van de SearchPicker kan gebeuren.

 

1. SearchPicker gekoppeld aan een tabel van strings

<m:SearchPicker DefaultIndexOrId="2" BackgroundColor="White" TextColor="Black" SqlParam="@journal" HorizontalOptions="FillAndExpand">
  <Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
  <x:String>1Fact</x:String>
  <x:String>1NCre</x:String>
  <x:String>1FCmp</x:String>
</x:Array>
  </Picker.ItemsSource>
</m:SearchPicker>

De getoonde standaardwaarde zal 1FCmp zijn, hetgeen de index waarde 2 is (de eerste genummerde is nul)

 

2. SearchPicker gekoppeld aan een tabel van ItemDescriptors

<m:SearchPicker DefaultIndexOrId="valeur desc" BackgroundColor="White" TextColor="Black" SqlParam="$PARAM1$" HorizontalOptions="FillAndExpand" Margin="10, 10, 10, 0">
    <Picker.ItemsSource>
        <x:Array Type="{x:Type m:ItemDescriptor}">
            <m:ItemDescriptor Id="passage desc" Lib="Sorteren op bezoekers" />
            <m:ItemDescriptor Id="valeur desc" Lib="Sorteren op omzetcijfer" />
            <m:ItemDescriptor Id="c_nom asc" Lib="Sorteren op naam" />
        </x:Array>
    </Picker.ItemsSource>
</m:SearchPicker>

De getoonde standaardwaarde zal “Sorteren op omzetcijfer” zijn, hetgeen de index waarde gekoppeld aan het id “valeur desc”.

 

3. SearchPicker gekoppeld aan een lijst van elementen die uit Mercator komen

<m:SearchPicker MercatorItemsSource="Rayons" DefaultIndexOrId="A86E5C6C5F" SqlParam="@id_rayon" BackgroundColor="White" TextColor="Black" HorizontalOptions="FillAndExpand" />

De getoonde standaardwaarde zal de naam van de Rayon zijn, waarvan het id A86E5C6C5F is (in dit voorbeeld).

Opgelet : als er meer rolmenu’s gecoördineerd zijn (voorbeeld: rayons / families / subfamilies), is het noodzakelijk dat de standaard waarden samenhangend zijn en rekening houden met de boomstructuur van deze rayons, families en subfamilies. Het zou logisch zijn dat wordt vermeden om een standaard waarde op een familie die niet tot een vastgezette rayon behoort, vast te zetten.

MercatorPenguin: minimale versie = 2.2.1