2013-03-22 49 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

相关问题