WPF - 将 Listview 绑定为 rowdetailstemplate 的子元素

问题描述 投票:0回答:1
wpf listview data-binding datagrid rowdetailstemplate
1个回答
0
投票

您的代码几近完美。但是,发生这种情况是因为未设置 ListView 的 ItemsSource 属性,并且缺少 ListView.View 元素。以下是处理和解决此问题的方法。

绑定 ItemsSource 属性

ItemsSource 属性对于使用数据填充 ListView 至关重要。在您的情况下,您希望 ListView 显示每个 GridElement 的可用样式。通过将 ListView 的 ItemsSource 绑定到AvailableStyles 属性,您可以确保每行显示正确的数据。
通过设置 ItemsSource="{BindingAvailableStyles}",您可以告诉 ListView 使用当前 GridElement 中的AvailableStyles 集合作为其数据源。如果没有这个,ListView就没有数据可显示。

定义ListView.View

ListView.View 属性对于定义要在 ListView 中显示的数据的布局和列是必需的。在本例中,GridView 用于定义 sCode 和 sColor 的列。
ListView.View 元素(特别是 GridView)定义 ListView 中每个项目的显示方式。它指定每个项目应显示两列:一列用于 sCode,一列用于 sColor。如果没有这个,ListView 将不知道如何渲染数据。

最终结果

最终的 WPF 将如下所示:

<ListView x:Name="styleList" Height="135" ItemsSource="{Binding AvailableStyles}">
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding sCode}" Header="Name"/>
            <GridViewColumn DisplayMemberBinding="{Binding sColor}" Header="Color"/>
        </GridView>
    </ListView.View>
</ListView>

还有这样的应用程序: enter image description here

我希望这有帮助!如果您还有任何疑问,请随时询问。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.