【问题标题】:Multicolumn listview in WPF at design time设计时 WPF 中的多列列表视图
【发布时间】:2010-02-23 03:29:11
【问题描述】:

我在这里可能听起来很愚蠢,但我想做一些非常简单的事情。在设计时,我想向列表视图控件添加列并向其中添加一些数据。我需要在列表视图的每一列中添加组合框。我找不到的是在 listviewitem 中提到列号的位置。任何帮助表示感谢。

<ListView IsSynchronizedWithCurrentItem="True" Margin="8,68,304,188"  
      BorderThickness="2,2,2,2">
 <ListView.View>
   <GridView>
    <GridViewColumn Width="150" Header="Column1"/>
    <GridViewColumn Width="150" Header="Column2"/>
   </GridView>
 </ListView.View>
 <ListViewItem>                              
 </ListViewItem>            
</ListView>

【问题讨论】:

    标签: wpf listview


    【解决方案1】:

    listviewitem中的每一列都是根据GridView定义渲染的,所以没有真正的列号概念。您所做的是将对象绑定到 listview 的 itemsource 并从中创建 listviewitems。因此,需要跳过一些障碍。

    This link 有一个如何做一些简单的对象数据绑定的例子。这样做的好处是,如果您将 datacontext/itemsource 设置为空对象而不是 XAML 中的静态对象,那么您在设计时拥有的绑定结构可能可以在运行时重用。

    如果您这样做是为了展示示例,或者您只是想使用一个静态数据源,我建议您使用XmlDataProvider。然后你把你的 ListView 改成这样,

    <ListView IsSynchronizedWithCurrentItem="True" Margin="8,68,304,188" BorderThickness="2,2,2,2"> <ListView.View> <GridView> <GridViewColumn Width="150" Header="Column1" DisplayMemberPath="{Binding XPath=/A/B}"/> <GridViewColumn Width="150" Header="Column2" DisplayMemberPath="{Binding XPath=/A/C"/> </GridView> </ListView.View> <ListViewItem> </ListViewItem> </ListView>

    【讨论】:

    • 是的,我想我正在寻找一些从未存在过的东西:)。绑定是要走的路。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2010-12-03
    相关资源
    最近更新 更多