Windows Phone 7.1, ListPicker FullModeItemTemplate Binding Testo
-
28-10-2019 - |
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
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"