2012-11-11 74 views
0

我有ItemsSource被綁定到LINQ到實體查詢的結果,並且在一個列中的數據網格是EntityCollection對象。如何在C#中爲DataGrid中的單元格設置模板?

private void DataGridRecipientsLoad() 
    { 
     dataGridRecipients.ItemsSource = from rec in _recipientService.GetAllRecipients() 
             select rec; 
     dataGridRecipients.Columns[7].Visibility = System.Windows.Visibility.Collapsed; 
     dataGridRecipients.Columns[8].Visibility = System.Windows.Visibility.Collapsed;    
    } 

如何創建在C#中的模板取出剛剛字符串屬性出的物品中Entity Collection並顯示它們?現在細胞是空的。

EntityCollection包含實體,稱爲MailingList,我想顯示它們每個的myMailingList.Name

回答

0

例如,你有客戶的收集和他們有下一個屬性:FirstNameLastName

internal class Customer 
{ 
    public string FirstName {get; set;} 
    public string LastName {get;set;} 
} 

,那麼你可以爲它簡單的網格視圖:

<DataGrid x:Name="CustomersGridView" AutoGenerateColumns="False" > 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}" /> 
      <DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}" /> 
     </DataGrid.Columns> 
    </DataGrid> 

而且你還需要分配ItemSource(就像你在代碼中做的那樣)。 您還可以使用DataGridTemplateColumn爲您的需求編寫更靈活的模板。 我建議你閱讀更多關於xaml模板。 (這link/another link有很好的樣本)。 p.s.Also當我看到這樣的問題時,我總是建議閱讀有關MVVM

相關問題