我想设计一个tabcontrol。每个tabitem都有一个网格。让我们说网格是数据绑定到对象列表。现在我如何绑定tabcontrol。
下面显示的是班级
Class GridData
{
String Name;
string Id;
string location
}
Class TabItems
{
string tabName;
List<GridData> ls;
}
实现数据绑定的最佳方法
答案 0 :(得分:1)
假设您有这两个类:
public class GridData
{
public string Name { get; set; }
public string Id { get; set; }
public string Location { get; set; }
}
public class TabItems
{
public string tabName { get; set; }
public List<GridData> ls { get; set; }
}
然后将TabControl.ItemsSource
设置为List<TabItems>
,那么TabControl
的XAML可能如下所示:
<TabControl>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding tabName}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding ls}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Id, StringFormat='{}Id: {0}'}"/>
<TextBlock Text="{Binding Path=Name, StringFormat='{}Name: {0}'}"/>
<TextBlock Text="{Binding Path=Location, StringFormat='{}Location: {0}'}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
您指定2 DataTemplates
。标题为TabControl.ItemTemplate
,内容为TabControl.ContentTemplate
,在此示例中ItemsControl
显示ls