Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF DataGrid的替代方案,它将控件公开为放置在网格控件上_Wpf_Layout_Datagrid - Fatal编程技术网

WPF DataGrid的替代方案,它将控件公开为放置在网格控件上

WPF DataGrid的替代方案,它将控件公开为放置在网格控件上,wpf,layout,datagrid,Wpf,Layout,Datagrid,我正在使用WPF数据网格,这太糟糕了。它假设我想要基于行或单元格选择的用户界面体验,首先我必须选择一个单元格/行,然后再次单击将其置于编辑模式 我知道有许多解决方案建议使用DataGrid进行单键编辑。然而,如果假设我可以将任何类型的控件放入一个列中,那么让它完美地工作是不可靠的 我要找的是一个网格控件,它将子控件放到列中,就像它们是手动放到列中一样。因此,它更像是一个ItemsControl生成的网格布局,而不是一个全天候的数据网格 使用网格布局的SharedColumns功能也不会像其他开发

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

我知道有许多
解决方案
建议使用DataGrid进行单键编辑。然而,如果假设我可以将任何类型的控件放入一个列中,那么让它完美地工作是不可靠的

我要找的是一个网格控件,它将子控件放到列中,就像它们是手动放到列中一样。因此,它更像是一个ItemsControl生成的网格布局,而不是一个全天候的数据网格

使用网格布局的SharedColumns功能也不会像其他开发人员所注意到的那样起作用。在某种程度上,共享列变得不稳定,布局开始跳跃、闪烁并锁定


有什么建议吗?

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


…一堆文本框等。。。。

您还可以使用ListView,它支持项目模板,并带有预先制作的GridView“样式”:

如果您不使用选择功能,请不要使用ListBox,只使用ItemsControl。@LeeLouvier如果您需要网格视图,ListView比ItemsControl更好。我会在ListBox上告诉您:)是的,ListView比DataGrid好得多。也许它应该被称为WTFtheDataGrid,我无法从中得到任何东西:-)
<ListBox ItemsSource="{Binding Path=MyData}">
   <ListBox.ItemTemplate>
      <StackPanel Orientation="Horizontal">
         ...Bunch of text boxes, etc....
      </StackPanel>
   </ListBox.ItemTemplate>
</ListBox>