【问题标题】:WPF ListView - 2 dimensions with 1 same structureWPF ListView - 2 个维度,1 个相同的结构
【发布时间】:2014-05-10 17:48:00
【问题描述】:

我们正在开发一个 ListView (C# WPF),但我们没有找到如何绑定列中的项目列表,每个项目都包含一个具有相同列的项目列表。

让我们用一个例子来说明这一点:

我们得到了一个带有参数(名称等)的对象的可观察集合,每个对象都包含另一个具有相同参数的对象的可观察集合(除了它们没有列表)。所以我们想在 ListView 中列出它,但我们不知道怎么做!

我们对 ListView 的了解不够,无法实现这种结构,有什么建议吗?

提前致谢

【问题讨论】:

  • 这不是一件非常简单的事情。你希望你的组项目也可以重新调整大小吗?
  • 他们得到了相同的列(相同的参数),所以我只想有 1 个 ListView。你觉得有可能吗?
  • 您可以通过将 CollectionViewSource 与 GroupDescriptions 结合使用,在不调整组级别项目大小的情况下进行分组,只需查看 MSDN 即可。如果您希望您的组级别项目的行为与未分组的项目相似,它会为解决方案增加很多复杂性。
  • 谢谢,我会努力的!如果它有效,我会更新!

标签: c# wpf listview gridview binding


【解决方案1】:

我认为最好的方法是:

XAML:

<Window.Resources>
<DataTemplate x:Key="gridViewSecondCellTemplate1">
            <StackPanel Width="100">
                <TextBlock Text="{Binding Content}" FontSize="15" />
            </StackPanel>
</DataTemplate>

        <DataTemplate x:Key="gridViewCellTemplate1">
            <StackPanel Width="100">
                <TextBlock Text="{Binding Title}" FontSize="15" />
                <ListView ItemsSource="{Binding MySecondSource}>
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="{Binding Subtitle}" CellTemplate="{StaticResource gridViewSecondCellTemplate1}"/>
                    </GridView>
                </ListView.View>
                </ListView>
            </StackPanel>
        </DataTemplate>
</Window.Resources>

    <ListView ItemsSource="{Binding MySource}">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Col 1" Width="100" CellTemplate="{StaticResource gridViewCellTemplate1}"/>
                    </GridView>
                </ListView.View>
            </ListView>

我没有尝试此代码。试试看,如果可以的话告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多