3

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

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

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

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

有什么建议么?

4

1 回答 1

3

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

<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

于 2013-10-16T05:15:06.870 回答