【问题标题】:An alternative to WPF DataGrid that exposes controls as if they were placed on a Grid controlWPF DataGrid 的替代方法,它公开控件,就好像它们被放置在 Grid 控件上一样
【发布时间】:2013-10-16 05:00:14
【问题描述】:

我正在使用 WPF DataGrid,它很糟糕。它假设我想要基于行或单元格选择的用户界面体验,首先我必须select 一个单元格/行,然后再次单击以将其置于编辑模式。

我知道有很多 solutions 建议使用一些技巧来使用 DataGrid 进行单击编辑。然而,假设我可以将任何类型的控件放入列中,那么让它完美地工作并不可靠。

我正在寻找的是一个网格控件,它可以将子控件放入列中,就好像它们是手动放置的一样。所以它更像是一个 ItemsControl 生成的网格布局,而不是一个花里胡哨的 DataGrid。

正如其他开发人员所注意到的那样,使用网格布局的 SharedColumns 功能也不起作用。在某些复杂点,SharedColumns 变得不稳定,布局开始跳跃、闪烁并锁定。

有什么建议吗?

【问题讨论】:

    标签: wpf layout datagrid


    【解决方案1】:

    您可以通过绑定到不同的控件(如列表框)并使用项目模板来生成“列”(可能通过在水平堆栈面板中使用固定宽度的项目)来做到这一点,即。

    <ListBox ItemsSource="{Binding Path=MyData}">
       <ListBox.ItemTemplate>
          <StackPanel Orientation="Horizontal">
             ...Bunch of text boxes, etc....
          </StackPanel>
       </ListBox.ItemTemplate>
    </ListBox>
    

    你也可以使用ListView,它支持item模板,自带一个预制的GridView“样式”:http://msdn.microsoft.com/en-us/library/system.windows.controls.listview.aspx

    【讨论】:

    • 如果不使用选择功能,不要使用ListBox,使用ItemsControl即可。
    • @LeeLouviere 如果需要网格视图,ListView 比 ItemsControl 好。我会在 ListBox 上给你 :)
    • 是的,ListView 比 DataGrid 好得多。也许它应该被称为 WTFtheDataGrid,我无法从中得到任何东西:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2022-12-06
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多