Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# DeFultVIEW显示一个额外的列,空白列有一个位置保持器。_C#_Wpf_Xaml - Fatal编程技术网

C# DeFultVIEW显示一个额外的列,空白列有一个位置保持器。

C# DeFultVIEW显示一个额外的列,空白列有一个位置保持器。,c#,wpf,xaml,C#,Wpf,Xaml,我正在将DataTable附加到DataGrid。我的datatable有三列。第一个和最后一个填充,中间一个为空。但是,当我将DATATATE附加到DATAGRID时,空白列填充了“Stase.DATA .DATAOWVIEW”,最后添加了一个空白列(请参阅附图)。我希望中间的数据列保持空白,不希望添加空白的结束列。当我调试代码时,我使用DataSet Visualizer查看我的datatable,它看起来正是我想要的。我做错了什么 DataTable visualDataTable

我正在将DataTable附加到DataGrid。我的datatable有三列。第一个和最后一个填充,中间一个为空。但是,当我将DATATATE附加到DATAGRID时,空白列填充了“Stase.DATA .DATAOWVIEW”,最后添加了一个空白列(请参阅附图)。我希望中间的数据列保持空白,不希望添加空白的结束列。当我调试代码时,我使用DataSet Visualizer查看我的datatable,它看起来正是我想要的。我做错了什么

    DataTable visualDataTable = new DataTable();
    visualDataTable.Columns.Add("EMS", typeof(String));
    visualDataTable.Columns.Add("   ", typeof(String));
    visualDataTable.Columns.Add("Algo", typeof(String));

    <DataGrid x:Name="Sfs1clf6_Table" IsReadOnly="True" Grid.Row="0" Margin="0,22,0,0" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="EMS" Binding="{Binding EMS}" Width="50" FontSize="14"/>
            <DataGridTextColumn Header="" Binding="{Binding}" Width="50" FontSize="14"/>
            <DataGridTextColumn Header="Algo" Binding="{Binding Algo}" Width="50" FontSize="14"/>
        </DataGrid.Columns>
    </DataGrid>
DataTable visualDataTable=newdatatable();
visualDataTable.Columns.Add(“EMS”,typeof(String));
visualDataTable.Columns.Add(“,typeof(String));
visualDataTable.Columns.Add(“Algo”,typeof(String));

您如何分配DataGrid的
项资源
,数据模型是什么样子的?看起来您正在使用
AutoGenerateColumns
,并使用包含两个字符串属性(EMS和Algo)和一个DataRowView属性(不确定为什么这里没有标题…)的对象集合填充网格。关于额外的列,正如前面所述,这只是剩余的空白空间。我只是将DataTable分配给DataGrid,如下所示:DataGrid.ItemsSource=visualDataTable.DefaultView;
visualDataTable
只是一个标准的.Net数据表吗?因为如果是这样的话,你不应该得到你在问题中的形象。。。AutoGenerateColumns将自动为DataTable中的每个属性生成一列,并将标题分配给任何列名,但是column2没有标题,属于DataRowView类型,这是非常罕见的,除非您的
visualDataTable
创建不正确。这意味着您的第二列是数据类型
System.Data.DataRowView
。WPF的DataGrid不知道如何呈现该数据类型,因此使用默认值,即包含对象的
.ToString()
的标签,该标签通常是完整的类名。