c# - 我如何摆脱多余的列?

标签 c# wpf datagrid

我刚刚制作了一个客户列表,从数据库中获取了客户的详细信息,将它们添加到列表中,然后将列表添加到 DataGrid 中,但是我得到了很多额外的列!这是我的 DataGrid xaml 代码:

<DataGrid  x:Name="dataGridC" HorizontalAlignment="Left"  Margin="10" VerticalAlignment="Top" Height="150" Width="1000" />

这是我的代码隐藏:

var cn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ASUS\Documents\Visual Studio 2015\Projects\G_D_C v2\G_D_C v2\G_D_C.mdb");
                cn.Open();

                OleDbCommand cmd = new OleDbCommand();


                cmd.CommandText = "select * from [client]";
                cmd.Connection = cn;

             //   OleDbDataReader rd = cmd.ExecuteReader();
                    using (OleDbDataReader reader = cmd.ExecuteReader())
                    {

                        while (reader.Read())
                        {
                            int ID = reader.GetInt32(0);
                            string nom_cs = reader.GetString(1);
                            int num_tel = reader.GetInt32(2);
                            int fax = reader.GetInt32(3);
                            string adresse = reader.GetString(4);

                            client c = new client(ID, nom_cs, num_tel, fax, adresse);
                            lsc.Add(c);
                        }
                    }

              //  dataGridC.ItemsSource = rd;


                  dataGridC.ItemsSource = lsc;

ScreenShot

最佳答案

<DataGrid AutoGenerateColumns="False" />

https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(v=vs.110).aspx

正确,因为您没有指定要显示的内容。 AutoGenerateColumns="False"不会生成您的 DataGrid.ItemSource 中存在的列因为该属性只是告诉它不要生成任何列...行可能会显示,但实际上什么都看不到。

<DataGrid x:Name="Grid" AutoGenerateColumns="False">
   <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Id}" Header="ID" />
      <DataGridTextColumn Binding="{Binding nom_cs}" Header="Nom CS" />
      <DataGridTextColumn Binding="{Binding num_tel}" Header="Num Tel" />
      <DataGridTextColumn Binding="{Binding fax}" Header="Fax" />
      <DataGridTextColumn Binding="{Binding Adresse}" Header="Adresse" />
    </DataGrid.Columns> 
</DataGrid>

关于c# - 我如何摆脱多余的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43833814/

相关文章:

c# - XmlSerializer 定义默认值

c# - 使用 wsdl.exe 从 c# 客户端到 Tomcat 的 HTTPS 连接

c# - 在 ListView 中强制调整 GridView 列的大小

c# - 在 WindowsFormsHost 中插入表单时出现 ArgumentException

javascript - 如何让 jqGrid 工具栏搜索工作?

GWT 2.4 DataGrid 选择项目时自动滚动

c# - 在运行时禁用 OData V4 元数据和 Controller

c# - 运算符 && 不能应用于 decimal 和 decimal 类型的操作数

wpf - 如何在 ContextMenu 内为 MenuItem 设置 CommandTarget?

c# - 使用绑定(bind)禁用特定的 DataGrid 单元格