Frage

habe ich eine benutzerdefinierte Steuerung ich in WPF geschrieben einige Daten anzuzeigen. Ich möchte diese Usercontrol in einer Liste anzuzeigen, aber ich möchte auch in der Usercontrol enthalten mehrere Spaltenüberschriften (passend einige Eigenschaften auf der Benutzer cotrol), so kann der Anwender sortieren auf Eigenschaften.

Ich bin nicht sicher, der beste Weg, um dies zu.

Im Moment habe ich eine ListBox diese Bedienelemente Anzeigen, aber die List-Box hat keinen Header und ich kann nicht herausfinden, wie mehrere Header auf der List-Box zu setzen.

Im Idealfall möchte ich etwas wie folgt aus:

Header1   Header2  Header3   Header4
[UserControlThatSpansAllFourColumns]

Mein anderer Gedanke war, ein Datagrid zu verwenden, und irgendwie jedes Element erhalten mehrere Spalten zu überbrücken, aber bisher kann ich nicht diese Zahl entweder aus.

Wenn jemand irgendwelche Tipps hat, würde ich sie gern gesehen!

War es hilfreich?

Lösung

Ok, this is not in any case the "best way" but I'd just throw this in. One way that sort of works like what you need is to use a ListView with a custom ItemContainerStyle that uses a <ContentPresenter> instead of the default <GridViewRowPresenter>. This short XAML somewhat demonstrates this:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <ContentPresenter/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Header1"/>
            <GridViewColumn Header="Header2"/>
        </GridView>
    </ListView.View>

    <Button>Item1</Button>
    <Button>Item2</Button>

</ListView>

Here, you get the column headers, and the items span across the entire listview. In this solution, however, the rendering of items are kind of in a world of its own. It isn't really connected to the columns defined for the ListView. So I guess one way of making this work better is to provide your own <RowPresenter> implementation that actually takes into consideration the GridViewColumns defined in the parent listview.

Anyway, hope this helps somehow.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top