在标题中使用“ /”时,如何防止列不显示在WPF数据网格中?

泰勒

我的应用程序中有一个WPF Datagrid,其中将ItemSource的值设置为所构造的DataTable的DefaultView。问题在于,每当我将DataTable中列之一的ColumnName设置为包含'/'的字符串时,标题就会显示在DataGrid控件中,但值不会显示。我该如何解决?

在此处输入图片说明

这是同一表,用“ /”替换为“-” 在此处输入图片说明

顺便说一句,这似乎也发生在带有“。”的标题中。在他们之中。因此,任何小数将导致相同的行为。

我的网格定义为

<DataGrid x:Name="dgLFKPI" />

并且我在后面的代码中设置了值(是的,应该在视图模型和MVVM中,但是它是一个以这种方式缓慢运行的旧版应用程序)。

dgLFKPI.ItemsSource = dt.DefaultView;
瑞秋

绑定路径解析器错误地解析了列名中的特殊字符。

因此,绑定到的列3/4实际上仅绑定到属性3,而不绑定到属性3/4(与.绑定相同

在调试窗口运行期间,您可能会看到绑定错误,应该说出同样的事情。

System.Windows.Data错误:40:BindingExpression路径错误:在“对象”“ DataRowView”上找不到“ 3”属性

根据这个答案

在绑定路径中,有许多不同的字符具有特殊含义,包括句号('。'),斜杠('/'),方括号('[',']')和括号('(',' )'),括号会导致您的应用崩溃。这些特殊字符可以通过用方括号括起来的绑定路径来转义。有关路径和字符转义的更多信息,请参见[绑定声明概述] [2]。

这个链接的问题还为处理要使用自动生成的列的网格提供了一个很好的解决方案

使用该AutoGeneratingColumn事件,并手动为名称中具有这些特殊字符的列创建绑定,以使用方括号将其转义。

<DataGrid x:Name="dgLFKPI"
          AutoGeneratingColumn="dgLFKPI_AutoGeneratingColumn" />
private void dgLFKPI_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.PropertyName.Contains('/') && e.Column is DataGridBoundColumn)
    {
        var col = e.Column as DataGridBoundColumn;
        col.Binding = new Binding(string.Format("[{0}]", e.PropertyName));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Laravel Nova资源标题中使用html

使用Apache CSVParser时如何摆脱标题中的多余引号

在jqGrid列标题中使用图标?

如何在R的书形标题中使用UTF-8字符

如何在matplotlib中使用Latex在轴标题中获得一个千分号?

如何在UITableView的页脚标题中使用换行符?

使用nuxt,如何在页面标题中添加路线名称?

如何在通用标题中使用class =“ active”?

在Datatables列标题中使用字体真棒图标和文本

如何在翻新标题中使用JSON发送GET请求

在图标题中使用数据框变量名称

如何使用HTML5在标题中添加文本

如何在组件标题中使用翻译?

uwp:在Datagrid列标题中使用Segoe MDL2资产图标

在Ignite Grid的列标题中使用输入控件

使用pandas to_csv时删除标题中的前导逗号

在R中使用count函数时,如何仅从小标题中提取int值?

如何在元素标题中使用React Moment Use fromNow?

在ggplot2中合并图例的标题中使用上标

如何在希腊字母的ggplot标题中使用上标

如何在R中使用kableExtra :: kable()函数在标题中正确显示脚注标记

在数据框中对象的标题中使用斜体

使用子标题中的信息添加新列

我在标题中使用图像作为导航栏品牌,但是图像来自标题,我如何在引导程序中解决此问题?

在列标题中使用文本框-C#WPF

如何在应用程序抽屉和应用程序标题中使用相同的菜单项?

使用 DotNetBrowser 打印时如何更改标题中的日期格式?

当我使用 margin: 0 auto 时,为什么我的标题中心不显示?

单击数据网格列标题中的元素