Pregunta

Estoy tratando de cambiar el tamaño de fuente de mis elementos en un selector de lista. Utilizo una MODEMEDEITEMTEMPLATE para poder cambiar FontSize, etc.

El problema es que no tengo idea de cómo vincular el texto para los elementos en la plantilla

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

Uplico mi selección de listadores configurando el elemento en C# como este

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

Esto me deja con una lista de artículos de elementos que solo contiene cadenas, entonces no sé cómo vincular el texto para cada elemento. Leí una publicación sobre cómo hacerlo cuando la lista de artículos de elementos está en este formato

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

        this.listPicker.ItemsSource = source;

Y entonces la parte XAML es algo como esto

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

Cualquier ayuda sería muy apreciada :)

ACTUALIZAR

Encontré el enlace correcto para la unión a los SourceItems.

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

Parece que ese es el camino a seguir, luego los elementos de origen se unen al bloqueo text.

¿Fue útil?

Solución

Debería agregar objetos de tipo Cities para usted sourceInput recopilación.

Mecanografía Text="{Binding Name}" es correcto.

Lo más probable es que su clase de ciudades simplemente no implementa el Inotifypropertychanged interfaz. Debe notificar a la interfaz de usuario cada vez que actualice el nombre y otras propiedades a las que tiene sus elementos de interfaz de usuario.

Otros consejos

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

Es genial, pero para el selector de lista también hay una propiedad de membermemberPath, así que, por lo tanto,

En ListPicker Agregar:

DisplayMemberPath = "Nombre"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top