WPF DataGrid的替代方法,它将控件公开为放置在Grid控件上

时间:2013-10-16 05:00:15

标签: wpf layout datagrid

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

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

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

使用Grid布局的SharedColumns功能将无法像其他开发人员注意到的那样工作。在某些复杂的情况下,SharedColumns变得不稳定,布局开始跳跃,闪烁并锁定。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

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

您还可以使用ListView,它支持项目模板并附带预制的GridView“样式”:http://msdn.microsoft.com/en-us/library/system.windows.controls.listview.aspx