2012-11-22 20 views
5
private void ViewWinLoaded(object sender, RoutedEventArgs e) 
    { 
     var stud = from s in data.Students 
          select s; 
     Student[] st=stud.ToArray<Student>(); 
     datagrid.ItemsSource = st; 

    } 

以上是我的C#代碼。我該如何糾正wpf datagrid列名冗餘的visual studio 2012

<DataGrid x:Name="datagrid" HorizontalAlignment="Left" Height="232" VerticalAlignment="Top" Width="461"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Path=StudentID}" ClipboardContentBinding="{x:Null}" Header="StudentID"/> 
      <DataGridTextColumn Binding="{Binding Path=FirstName}" ClipboardContentBinding="{x:Null}" Header="First Name"/> 
      <DataGridTextColumn Binding="{Binding Path=LastName}" ClipboardContentBinding="{x:Null}" Header="Last Name"/> 
      <DataGridTextColumn Binding="{Binding Path=Gender}" ClipboardContentBinding="{x:Null}" Header="Gender"/> 
      <DataGridTextColumn Binding="{Binding Path=GPA}" ClipboardContentBinding="{x:Null}" Header="GPA"/> 
     </DataGrid.Columns> 
    </DataGrid> 

我努力才達到是用我自己的列名,而不是在分貝列名。 但是當我運行代碼時,它同時顯示我的自定義列和db的列名稱(級聯名稱)

+0

爲什麼'stud.ToArray ();'ItemSource是IEnumerable。 –

回答

2

通過將AutoGenerateColumns屬性設置爲false,防止DataGrid生成列。

<DataGrid x:Name="datagrid" AutoGenerateColumns="False" 
HorizontalAlignment="Left" Height="232" VerticalAlignment="Top" Width="461"> 
+0

感謝這工作正常! –

0

另一種方式來實現這一結果,你可以設置你的學生類屬性DisplayName的每一個公共財產。