質問

いくつかのデータを表示するためにWPFで書いたカスタムユーザーコントロールがあります。このusercontrolをリストに表示したいのですが、ユーザーがusercontrolに含まれるプロパティをソートできるように、複数の列ヘッダー(ユーザーコトロールの一部のプロパティを一致させる)も提供したいと思います。

これを行うための最良の方法はわかりません。

現在、これらのユーザーコントロールを表示するリストボックスがありますが、リストボックスにはヘッダーがなく、リストボックスに複数のヘッダーを配置する方法がわかりません。

理想的には、このようなものが欲しい:

Header1   Header2  Header3   Header4
[UserControlThatSpansAllFourColumns]

私のもう1つの考えは、データグリッドを使用して、どういうわけか各アイテムを複数の列に渡すことでしたが、これまでもそれを理解することはできません。

誰かがヒントを持っているなら、私は彼らを歓迎します!

役に立ちましたか?

解決

わかりました、これはいずれにしても「最良の方法」ではありませんが、私はこれを投げるだけです。 <ContentPresenter> デフォルトの代わりに <GridViewRowPresenter>. 。この短いXAMLはこれをやや示しています:

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

ここでは、列ヘッダーを取得し、アイテムはListView全体にまたがっています。ただし、このソリューションでは、アイテムのレンダリングは独自の世界にあります。 ListViewで定義された列に実際には接続されていません。ですから、この仕事をより良くする方法の1つは、あなた自身を提供することだと思います <RowPresenter> Parent ListViewで定義されているGridViewColumnsを実際に考慮した実装。

とにかく、これがどういうわけか役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top