Question

J'essaie de modifier la taille de la police pour mes articles dans un ListPicker. J'utilise un FullModeItemTemplate pour pouvoir modifier FontSize, etc.

Le problème est que je ne sais pas comment lier le texte des éléments du modèle

<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>

Je remplit mon listpicker en définissant les éléments en C # comme celui-ci

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

Cela me laisse avec une liste d'éléments en contenant uniquement des chaînes, alors je ne sais pas comment lier le texte pour chaque élément. J'ai lu un article sur la façon de le faire lorsque la liste des objets est dans ce format

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

        this.listPicker.ItemsSource = source;

Et puis la partie xaml est quelque chose comme ça

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

Toute aide serait grandement appréciée :)

METTRE À JOUR

J'ai trouvé la liaison correcte pour la liaison aux sourceItems.

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

On dirait que c'est la voie à suivre, puis les éléments source sont repoussés au TextBlock

Était-ce utile?

La solution

Vous devriez ajouter des objets de type Cities à ton sourceInput le recueil.

Dactylographie Text="{Binding Name}" est correct.

Très probablement, votre classe de villes n'implémente tout simplement pas Inotifypropertychanged interface. Vous devez informer l'interface utilisateur chaque fois que vous mettez à jour le nom et d'autres propriétés auxquelles vous avez lié vos éléments d'interface utilisateur.

Autres conseils

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

C'est cool mais pour le ListPicker, il y a aussi la propriété DisplayMemberPath donc,

sur listPicker Add:

Displaymemberpath = "name"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top