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)什么是荷兰式的集合。我看到您创建了不同的列表,然后让我更改它对我来说仍然是一样的。如果你愿意,我可以分享更多的代码,但不知道最好的方法是什么。编辑问题或上传到其他地方?