繁体   English   中英

具有单元格样式的WPF DataGrid —同一列中的不同单元格样式

[英]WPF DataGrid with cell style — different cell style in same column

我只是想知道如何为同一列分配不同的单元格样式? 单元格样式可以是组合框或文本框。 图片已上传。 真的很难吗?

我想在数据网格中显示表格。 第一列应为表字段的名称,第二列应为该列的值。 现在,如果第一列单元格数据类型为var char,则第二列单元格应显示文本框。 如果第一列单元格数据类型为int,则第二列单元格应显示组合框。

DataGrid单元格样式

谢谢,N头像

替代文字

你可以 :

  • 从DataGridBoundColumn(或其派生对象之一)派生并覆盖

    受保护的重写FrameworkElement GenerateElement(DataGridCell单元格,对象dataItem)

方法。 此方法创建出现在每个单元格中的项目。 作为参数传递的dataItem是该行中的项目。 麻烦的是,要决定使用哪个项目来显示当前单元格值,您将必须手动执行绑定才能使该项目显示在单元格中,然后查看要返回的ui控件。

  • 使用模板列,并在单元格模板中使用数据触发器交换要显示的ui元素。

当问这个问题时,请记住有两种不同的WPF数据网格。 WPFToolkit中的CodePlex上使用.NET Framework 3.5 SP1发布的一个。 较新的WPF DataGrid作为使用.NET Framework 4.0的WP4中的内置控件发布。

您的解决方案可能会有所不同,具体取决于您决定使用哪种数据网格,并且您可能会发现其中一种比另一种更好地工作。

就是说,我在C#Corner上找到了一篇文章,描述了当单元格处于编辑模式时如何在单元格中显示组合框。 这可能对您有帮助。 如果从这里开始,您可能会发现可以扩展此代码示例以适合您的需求。 并且在编辑时需要使用文本框而不是组合框的情况下,可以将组合框设置为允许输入新值,本质上是让用户在所需的项目不可用时在文本框中输入值。 不知道这是否是您想要的东西,但我至少想给您一些东西。

祝好运,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM