Frage

Ich habe eine Elemente -Steuerung, die an eine Sammlung von Objekten gebunden ist. Das Objekt verfügt über zwei Eigenschaften (Name, Wert), die ich in einem Textblock bzw. Textbox anzeige. Die Liste ist ziemlich lang und ich möchte sie in zwei Spalten zeigen. Meine Frage ist also, dass ich eine Art und Weise, wie ich seine Elemente in zwei Spalten anzeigen kann?

PS: Die Sammlung ist zur Laufzeit besiedelt und ich weiß nicht, wie viele Artikel ich zeigen muss!

War es hilfreich?

Lösung

Ich neige dazu, die Gegenstände in Wrappanel zu setzen und dann die Breite des Panels auf 2x der Artikelbreite einzustellen. Das gibt mir schöne Spalten mit einer willkürlichen Anzahl von Elementen. Wenn sich Ihre Artikelbreiten unterscheiden, stelle ich jedes Element in ein eigenes Netz oder Stackpanel mit fester Breite.

Andere Tipps

Verwenden Sie ein Listbox und geben Sie eine DataTemplate an, in der Sie sowohl den Textblock als auch das Textfeld einstellen. Verwenden Sie Bindungen, um beide zu bevölkern. Sehen http://msdn.microsoft.com/en-us/library/ms742521.aspx Weitere Beispiele.

<ListBox x:Name="TheListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <TextBlock Text="{Binding Name}" />
                <TextBox Grid.Column="1" Text="{Binding Value }" />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

TheListBox.ItemsSource = CollectionOfObjects;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top