![](/img/trans.png)
[英]How do you rename DataGrid columns when AutoGenerateColumns = True?
[英]Is it possible to add more columns to a DataGrid when AutogenerateColumns==True?
簡單地說,我在我的XML文件中有一個DataGrid
,我綁定到一個列表 - 在本例中,是一個Person
列表。 但是,我還想要一個額外的列,因為此列表中的所有條目都將成為Person
的子類,即PersonWithAge
。 但是我不允許更改ListOfPeople
的類型。
如果我手動在XAML中添加列,它會立即崩潰。 如何添加此列並將其與所有其他列同步? 有沒有辦法在XAML文件中強制轉換它? 或者可以在m_grid_AutoGeneratingColumn
方法中添加一個?
這是我的代碼:
// In MyGridView.xaml.cs
public class MyGridView
{
public ObservableCollection<Person> ListOfPeople { get; set; }
private void m_grid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
/* Some formatting here... */
}
}
public class Person
{
public string Name { get; set; }
}
public class PersonWithAge : Person
{
public int Age{ get; set; }
}
和XAML代碼:
// MyGridView.xaml
<UserControl x:Class="Project.MyGridView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<DataGrid Name="m_myGrid"
ItemsSource="{Binding ListOfPeople}
AutoGenerateColumns="True" AutoGeneratingColumn="m_grid_AutoGeneratingColumn" >
<!--DataGridTextColumn Header="Age" /--> <!-- This makes the thing crash -->
</DataGrid >
</Grid>
</UserControl>
移動要在DataGrid.Columns
中添加的列
<DataGrid Name="m_myGrid"
ItemsSource="{Binding ListOfPeople}
AutoGenerateColumns="True" AutoGeneratingColumn="m_grid_AutoGeneratingColumn" >
<DataGrid.Columns>
<DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
</DataGrid.Columns>
</DataGrid >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.