本帖最后由 kong19 于 2012-03-01 15:42:07 编辑

解决方案 »

  1.   

    我们做项目都是用ListBox绑定数据源ListBox.ItemsSource = dt.DefaultView; 
    还没有用dataGrid绑定过数据源 
     不知道dataGrid1.ItemsSource = data.DefaultView是否等价于dataGrid1.ItemsSource = data;
      

  2.   

    1. dataGrid1 设置AutoGeneralColums=true2. dataGrid1 设置ReadOnly=true
      

  3.   

            <DataGrid AutoGenerateColumns="True" Height="200" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="466" Grid.Row="0" Grid.ColumnSpan="3" CanUserSortColumns="False" CanUserDeleteRows="True" CanUserAddRows="True" >
            </DataGrid>
    没有ReadOnly啊。。
    而且现在显示的还是空白。。
      

  4.   

            <DataGrid AutoGenerateColumns="True" Height="200" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="466" Grid.Row="0" Grid.ColumnSpan="3" CanUserSortColumns="False" CanUserDeleteRows="True" CanUserAddRows="True" IsReadOnly="True">
            </DataGrid>
    isReadOnly设置为true了。数据还是空白,而且后面多出来7列
    Length LongLength Rank SyncRoot IsReadOnly IsFixedSize IsSynchronized
      

  5.   

    或者我不用ItemSource,  有没有办法,让我AddRow这样的去一条一条自己添加数据。
      

  6.   

    这样不知行不行dataGrid1.ItemsSource = data.DefaultView;
      

  7.   

    data是一个List<string[]> 没有DefaultView
      

  8.   

    Sorry:  IsReadOnly="True" AutoGenerateColumns="False"
    XAML内为DataGrid添加<DataGrid.Columns>
    <DataGrid.Columns>
     
    <DataGridTextColumn Binding="{Binding 要绑定的字段名}" Width="Auto" Header="Name"  />
    <DataGridTextColumn Binding="{Binding 要绑定的字段名}"  Width="Auto"  Header="SubArea"  />
    <DataGridTextColumn Binding="{Binding 要绑定的字段名}"  Width="Auto"  Header="Result"  />
     ...
    </DataGrid.Columns>
      

  9.   

    多谢老大的回答。但是我这个是根据CSV文件行长度的不同,列数是可变的,列表头我可以自己生成出来。
    但是CSV文件读出来的一行数据就是一个string[], 里面没有字段名,怎么能和我的列对应上阿。非要按名字,不可以按顺序来赋值吗?
      

  10.   

    DataGridTextColumn 可以在cs里面添加吗,
    可以的话怎么设置Binding?不行的话我就自己做个DataTable,把CSV的内容读到DataTable里面。
      

  11.   

    DataGridTextColumn 可以在cs里面添加吗,
    可以的话怎么设置Binding?不行的话我就自己做个DataTable,把CSV的内容读到DataTable里面。