2013-03-22 79 views
2

我有一個WPF DataGrid並且它綁定到List<Person> people爲DataGrid的特定列設置ItemTemplate

public class Person 
{ 
    public string Name{get;set;} 
    public string LastName{get;set;} 
    public string Address{get;set;} 
    public int Age{get;set;} 
} 

public void ShowPeople() 
{ 
    myDataGrid.ItemsSource = people; 
} 

這表明一切正常,但我想在TextBox顯示AddressDataGrid內。

我改變XAML代碼這樣:

<DataGrid x:Name="myDataGrid"> 
     <DataGridTemplateColumn Header="Address"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding Path=Address}"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid> 

這是行不通的。它給了我一個錯誤。

在使用ItemsSource之前,項目集合必須爲空。

請幫助。 謝謝,

回答

4

你缺少你的XAML的Columns屬性:

<DataGrid x:Name="myDataGrid"> 
    <DataGrid.Columns> <-- This is missing in your code! 
     <DataGridTemplateColumn Header="Address"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding Path=Address}"/> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

我不好。它效果很好。謝謝! – 2013-03-22 20:12:55

+0

你能告訴我如何在代碼背後做到這一點? – 2013-03-22 20:19:03

+0

在代碼後面做什麼?創建整個'DataGrid'而不是使用XAML? – 2013-03-22 20:25:31