Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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
C# 选择行时,如何将所有DataGrid ComboBoxCells显示为组合框?_C#_Wpf_Datagrid - Fatal编程技术网

C# 选择行时,如何将所有DataGrid ComboBoxCells显示为组合框?

C# 选择行时,如何将所有DataGrid ComboBoxCells显示为组合框?,c#,wpf,datagrid,C#,Wpf,Datagrid,我创建了一个DataGrid,用户必须在每行中的两个组合框中进行选择(请参见img)。 现在我想让这更“整洁”。让我举例说明 用户必须在列类别和大小中选择一个值。这些列是组合框。 第一次选中行时单击(请参见img) 添加这一点,我想将组合框显示为实际的组合框。但从图片上看,它们看起来仍然像空文本框。 只有再次单击该单元格时,该单元格才会看起来像一个组合框 注意:类别组合框将获得一个静态列表,大小组合框将根据类别组合框的选择获得一个特定的值列表 我想要实现的是减少用户的点击次数。如何将com

我创建了一个
DataGrid
,用户必须在每行中的两个组合框中进行选择(请参见img)。 现在我想让这更“整洁”。让我举例说明

用户必须在列类别和大小中选择一个值。这些列是组合框。 第一次选中行时单击(请参见img)

添加这一点,我想将组合框显示为实际的组合框。但从图片上看,它们看起来仍然像空文本框。 只有再次单击该单元格时,该单元格才会看起来像一个组合框

注意:类别组合框将获得一个静态列表,大小组合框将根据类别组合框的选择获得一个特定的值列表

我想要实现的是减少用户的点击次数。如何将comboxbox行显示为实际的ComboBox,并避开选择列所需的额外单击

datagridview的Xaml:


绑定类:

公共类部分
{
公共字符串编号{get;set;}
公共字符串RefDes{get;set;}
公共字符串xCoord{get;set;}
公共字符串yCoord{get;set;}
公共字符串包{get;set;}
公共字符串旋转{get;set;}
}
dataGrid.ItemsSource=cadFile.MatchList;

一种解决方案是创建自己的
DataGrid
列模板,该模板显示:

  • 选择父级
    DataGridRow
    时,会出现一个
    组合框
  • 当未选择父级
    DataGridRow
    时,显示
    TextBlock
您可以通过以下方式实现此目的:


您还应该将
SelectionUnit=“FullRow”
标记添加到您的
DataGrid
。如果您不希望这样做,那么您应该将
AncestorType=DataGridRow
更改为
AncestorType=DataGridCell
,以检测单元格而不是行的选择

请注意,为了便于说明,我在每个项目中添加了
CategoryChoices
属性:

public IList CategoryChoices{get;}=新列表{“Category1”,“Category2”};
结果是:


此时combobxes中没有数据,对吗?这就是问题所在,放一些虚拟数据并检查。记录之外,我喜欢看到有人在与SMT打交道:)@KubaDo谢谢你的建议,但遗憾的是这没有帮助。我已经用你的XAML代码替换了我的专栏,这就是结果,它似乎不起作用。我尝试添加一张图片,但似乎无法添加评论。但现在唯一的变化是,单元格中的collumn正在其中显示(集合)。我添加了一个gif屏幕截图,这与您的截图有什么不同?在分类列中,我看到的是(Verzameling)什么是荷兰式的集合。我看到您创建了不同的列表,然后让我更改它对我来说仍然是一样的。如果你愿意,我可以分享更多的代码,但不知道最好的方法是什么。编辑问题或上传到其他地方?