Frage

Ich versuche, KeyValuePair-Elemente aus einem Wörterbuch an ein ItemsControl zu binden.Mein Wörterbuch hat 15 Elemente und der folgende Code zeigt mir 15 TextBoxen:

<WrapPanel Name="PersonsWrapPanel" Grid.Row="0">
    <ItemsControl ItemsSource="{Binding Persons}" >
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal" Width="auto">
                </WrapPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                    <TextBox Text="{Binding Value.Text}"></TextBox>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</WrapPanel>

Leider ohne TextBox-Inhalt (der Schlüssel oder Wert wäre).Irgendwelche Ideen?

War es hilfreich?

Lösung 2

ich es gelöst, indem Sie diese Zeile:

  <TextBox Text="{Binding Value, Mode=OneWay}"></TextBox>  

Der Code auf http :. //www.dev102.com/2008/03/07/binding-a-wpf-control-to-a-dictionary/ nicht zu funktionieren scheinen

Andere Tipps

Vielleicht versuchen direkt zu den Werten des Wörterbuchs Bindung:

ItemsSource="{Binding Persons.Values}"

Wenn ich Ihre XAML richtig bin zu verstehen, jedes Objekt im Wörterbuch hat ein Feld namens „Text“, zu dem Sie versuchen, zu binden. Wenn dem so ist und Sie die oben genannten Änderungen vornehmen möchten, müssen Sie Ihre Datatemplate ändern auch:

<TextBox Text="{Binding Text}" />

Siehe dieser Artikel für weitere Informationen. HTH.

Nehmen wir an, Sie haben ein Wörterbuch namens RowValues, wobei beide [Schlüssel, Wert] als [Zeichenfolge, Zeichenfolge] definiert sind.

Um nun an das Wertepaar dieses Wörterbuchs zu binden, können Sie Folgendes tun:

<ItemsControl ItemsSource="{Binding RowValues.Values}" >

Um den Text (Wert) anzuzeigen, können Sie Folgendes binden:

<TextBlock Text="{Binding}"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top