我正在尝试创建一个 UI,其中有一个 TabControl,并且每个选项卡中都有一个 DataGrid。我想动态添加/删除选项卡以及 DataGrid 的行/列。这是代码示例:
Test.xaml
<StackPanel>
<Button x:Name="Button" Content="Add tab" Click="Button_Click"/>
<Controls:MetroAnimatedTabControl x:Name="TabControl"
TabStripPlacement="Left"
DisplayMemberPath="TabName">
<TabControl.ContentTemplate>
<DataTemplate>
<DataGrid AutoGenerateColumns="True" DataContext="{Binding Context}" />
</DataTemplate>
</TabControl.ContentTemplate>
</Controls:MetroAnimatedTabControl>
</StackPanel>
以及隐藏的代码
Test.xaml.cs
public class Tab
{
public string TabName { get; set; }
public DataTable Content { get; set; }
public Tab(string name, DataTable content)
{
TabName = name;
Content = content;
}
public Tab(string name, List<string[]> content)
{
Content = new DataTable();
foreach (var item in content){
Content.Columns.Add(item[0], typeof(string));
}
DataRow row = Content.NewRow();
foreach (var item in content)
{
row[item[0]] = item[1];
}
Content.Rows.Add(row);
TabName = name;
}
}
它可以编译,但是当您运行该应用程序时,窗口中没有显示任何内容。数据绑定很可能是错误的(尤其是 DataGrid,因为我不知道如何使用像我这样的类来做到这一点)。
如果代码中不清楚,在我的Tab类中,我有TabName选项卡名称的属性,并且ContentDataTable 应该是相应 DataGrid 中的数据源。我想以某种方式将它们绑定到 xaml,如果实例被修改,UI 也会更新。
是否可以这样做,或者我需要采取不同的方法?
温温酱
慕运维8079593
相关分类