页面
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
<ScrollViewer VerticalScrollBarVisibility="Auto">
<sdk:DataGrid Name="LayoutRoot" AutoGenerateColumns="False" IsReadOnly="True" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="40" Header="日期" Binding="{Binding row}" />
<sdk:DataGridTemplateColumn Width="60" Header="名称">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Height="86">
<ItemsControl ItemsSource="{Binding Path=sons}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Margin="6" Text="{Binding Path=title}"></TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Width="120" Header="行号">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Height="86">
<ItemsControl ItemsSource="{Binding Path=sons}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Margin="4" Height="20" Text="{Binding Path=rowIndex, Mode=TwoWay}"></TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<!--<ItemsControl x:Name="LayoutRoot">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="10">
<StackPanel>
<TextBlock Text="{Binding Path=row}" Width="100" ></TextBlock>
</StackPanel>
<ItemsControl ItemsSource="{Binding Path=sons}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Path=title}" Width="200"></TextBox>
<TextBox Text="{Binding Path=rowIndex}" Width="200"></TextBox>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>-->
</ScrollViewer>
后台代码
void Loaded(object sender, RoutedEventArgs e)
{
var data = new List<rowParent>();
for (var i = 0; i < 31; i++)
{
var p = new rowParent();
p.row = i;
p.sons = new List<rowSon>();
data.Add(p);
for (var j = 0; j < 3; j++)
{
var s = new rowSon();
s.rowIndex = i * 3 + j;
s.title = "aaa";
p.sons.Add(s);
}
}
LayoutRoot.ItemsSource = data;
}
public class rowParent
{
public int row { get; set; }
public List<rowSon> sons { get; set; }
}
public class rowSon
{
public string title { get; set; }
public int rowIndex { get; set; }
}