Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 涉及数据显示的非常奇怪的问题_C#_.net_Wpf_Xaml_User Interface - Fatal编程技术网

C# 涉及数据显示的非常奇怪的问题

C# 涉及数据显示的非常奇怪的问题,c#,.net,wpf,xaml,user-interface,C#,.net,Wpf,Xaml,User Interface,我有一个DataGrid,定义如下: <DataGrid Name="dgResults" IsReadOnly="True" AutoGenerateColumns="True" AllowDrop="False" CanUserAddRows="False" CanUserDeleteRows="Fals

我有一个DataGrid,定义如下:

 <DataGrid Name="dgResults" 
                  IsReadOnly="True"
                  AutoGenerateColumns="True"
                  AllowDrop="False"
                  CanUserAddRows="False"
                  CanUserDeleteRows="False"
                  CanUserReorderColumns="True"
                  CanUserResizeColumns="True"
                  CanUserResizeRows="False"
                  CanUserSortColumns="False"
                  ColumnWidth="120"
                  Margin="15,10,10,10"
                  Visibility="Collapsed" 
                  ItemsSource="{Binding}"/>

从代码来看,您似乎只需要自定义列标题。如果是这样,您可能希望在XAML中显式定义列:

<DataGrid.Columns>
    <DataGridTextColumn Header="Employee identification number"
                        Binding="{Binding Path=EmployeeID}"
    </DataGridTextColumn>
    <Insert other column definitions here/>
</DataGrid.Columns>

按照现在的方式,XAML解析器或任何东西似乎在寻找与列标题或类似内容匹配的属性名称,而没有在ItemsSource对象上找到与列标题匹配的属性。

从代码中看,您似乎只需要自定义列标题。如果是这样,您可能希望在XAML中显式定义列:

<DataGrid.Columns>
    <DataGridTextColumn Header="Employee identification number"
                        Binding="{Binding Path=EmployeeID}"
    </DataGridTextColumn>
    <Insert other column definitions here/>
</DataGrid.Columns>

按照现在的方式,似乎XAML解析器或任何东西正在查找与列标题或类似内容匹配的属性名称,而它没有在ItemsSource对象上查找与列标题匹配的属性。

您可以显式地将数据网格列设置为这样,问题是,由于显式设置了标题,所以数据网格的显示内容受到限制。问题是,当您在autogeneratedColumn事件处理程序中设置标题时,文本块会像您所说的那样忽略下划线,但该点wpf不知道如何将列数据绑定到该标题。这就是绑定路径出错的原因。员工标识号是其试图绑定回dataview的内容,但在dataview中是其员工标识号。下面的解决方案解决了您的问题,但仅限于显示特定的数据视图。如果这不是一个问题,那么这就是你的解决方案

<DataGrid.Columns>
 <DataGridTextColumn Header="Employee identification number"
                    Binding="{Binding Path=EmployeeID}"
</DataGridTextColumn>
<Insert other column definitions here/>
</DataGrid.Columns>

您可以显式地设置数据网格列,因为显式地设置了标题,所以此时数据网格的显示内容受到限制。问题是,当您在autogeneratedColumn事件处理程序中设置标题时,文本块会像您所说的那样忽略下划线,但该点wpf不知道如何将列数据绑定到该标题。这就是绑定路径出错的原因。员工标识号是其试图绑定回dataview的内容,但在dataview中是其员工标识号。下面的解决方案解决了您的问题,但仅限于显示特定的数据视图。如果这不是一个问题,那么这就是你的解决方案

<DataGrid.Columns>
 <DataGridTextColumn Header="Employee identification number"
                    Binding="{Binding Path=EmployeeID}"
</DataGridTextColumn>
<Insert other column definitions here/>
</DataGrid.Columns>

这里的问题是,列标题中包含标点符号。删除标点符号解决了这个问题。希望有同样问题的人会读到这篇文章,因为我花了好几个小时才意识到。

这里的问题是,列标题中涉及标点符号。删除标点符号解决了这个问题。我花了好几个小时才意识到,希望有同样问题的人会读到这篇文章。

你能在绑定路径中添加空格吗?员工身份证号码你说的“安迪”是什么意思?这并不意味着是一个绑定路径——这是列的名称——摘自Microsoft AdventureWorks数据库。当我发现问题所在时,移到了这个问题:您甚至可以在绑定路径中放置空格吗?员工身份证号码你说的“安迪”是什么意思?这并不意味着是一个绑定路径,而是来自Microsoft AdventureWorks数据库的列名。当我发现问题所在时,我转到这个问题:谢谢你的回答。然而,我认为我找到了问题的根源,那就是专栏中的标点符号。在这里进一步解释:谢谢你的回答。然而,我认为我找到了问题的根源,那就是专栏中的标点符号。这里进一步解释:不幸的是,这是一个问题,因为它必须能够显示任何数据。看看这个,我已经定位了问题:我明白了,我认为唯一可以做到的方法是将列转换为可绑定的格式,也许还有另一个表包含标点标题,您可以查询并在事后动态创建带有标点的标题,但这将是一个绝对混乱的维护。不幸的是,这是一个问题,因为它必须能够显示任何数据。看看这个,我已经解决了这个问题:我明白了,我认为唯一可以做到的方法是将列转换成可绑定的格式,也许还有另一个包含标点标题的表,您可以在事后查询并使用标点动态创建标题,但这将是一个非常混乱的维护过程。