8,756
社区成员




<DataGrid Name="datagrid" RowHeaderWidth="30" Margin="10" ItemsSource="{Binding}" AutoGenerateColumns="False" RowDetailsVisibilityChanged="datagrid_RowDetailsVisibilityChanged" SelectionMode="Single" RowBackground="#FF7BB2AD" AreRowDetailsFrozen="True" MouseDown="datagrid_MouseDown" >
<DataGrid.Columns>
<DataGridTextColumn Header="编号" Binding="{Binding Id}" Width="100" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Header="姓名" Binding="{Binding Name}" Width="100" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid HeadersVisibility="None" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Id}" Width="100" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Name}" Width="100" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
public class A
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private List<A> aList = new List<A>();
public List<A> AList
{
get { return aList ; }
set { aList = value; }
}
}
private DataTemplate CreateDataGridTemplate()
{
DataTemplate template = new DataTemplate();
FrameworkElementFactory dataGridFactory = new FrameworkElementFactory(typeof(DataGrid));
dataGridFactory.SetValue(DataGrid.AutoGenerateColumnsProperty, true);
dataGridFactory.SetValue(DataGrid.HeadersVisibilityProperty, DataGridHeadersVisibility.None);
// 绑定datagrid_RowDetailsVisibilityChanged
dataGridFactory.AddHandler(?, new EventHandler<DataGridRowDetailsEventArgs>(datagrid_RowDetailsVisibilityChanged));
template.VisualTree = dataGridFactory;
return template;
}
这个方法可以动态创建模板,但是怎么绑定详细信息展开事件呢