Domanda

Sto cercando di cambiare la dimensione del carattere per i miei articoli in un elenco. Uso un FullModeItemTemplate per essere in grado di cambiare Fontsize ecc.

Il problema è che non ho idea di come legare il testo per gli elementi nel modello

<DataTemplate x:Name="PickerFullModeItemTemplate">
            <StackPanel Orientation="Horizontal" Margin="16 21 0 20" Background="Orange" Width="110" Height="110" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock Text="{WHAT TO TYPE HERE?}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5" FontSize="36"/>
            </StackPanel>
        </DataTemplate>

Popolo il mio elenco di listpicker impostando gli articoli in c# come questo

foreach (Item i in weight)
            {
                sourceInput.Add(i.name);
            }
        }
        InputSelector.ItemsSource = sourceInput;

Questo mi lascia con un elenco di elementi solo contenente stringhe, quindi non so come legare il testo per ogni elemento. Ho letto un post su come farlo quando l'elenco dei voci è in questo formato

source.Add(new Cities() { Name = "Mexico", Country = "MX", Language = "Spanish" });

        this.listPicker.ItemsSource = source;

E poi la parte XAML è qualcosa di simile

<TextBlock Text="{Binding Name}"/>

Qualsiasi aiuto sarebbe molto apprezzato :)

AGGIORNARE

Ho trovato il legame corretto per l'associazione con i sorgenti.

<TextBlock Text="{Binding BindsDirectlyToSource=True}"/>

Sembra che sia la strada da percorrere, quindi gli elementi di origine vengono associati al blocco di testo

È stato utile?

Soluzione

Dovresti aggiungere oggetti di tipo Cities alla tua sourceInput collezione.

Digitando Text="{Binding Name}" è corretta.

Molto probabilmente la tua lezione di città non implementa il Inotifyproperty -changed interfaccia. Dovresti avvisare l'interfaccia utente ogni volta che aggiorni il nome e altre proprietà a cui hai legato i tuoi elementi dell'interfaccia utente.

Altri suggerimenti

<TextBlock Text="{Binding Name}"/>

È bello ma per la lista di ListPicker c'è anche una proprietà DisplayMemberPath, quindi,

su ListPicker Aggiungi:

DisplayMemberPath = "Nome"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top