【发布时间】:2013-07-30 16:20:09
【问题描述】:
这些是我的课程:
class mainViewModel
{
public List<Foo> F { get; set; }
public mainViewModel()
{
F=new List<Foo>()
{
new Foo(new Animal(){Name = "Cat"}),
new Foo(new Animal(){Name = "Dog"}),
new Foo(new Animal(){Name = "Camel"})
};
}
}
public class Foo
{
public Animal Animal { get; set; }
public Foo(Animal animal)
{
Animal = animal;
}
}
public class Animal
{
public string Name { get; set; }
}
这是我的 MainWindow Xaml 代码:
<TabControl ItemsSource="{Binding Path=F}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Animal.Name}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="Something 1"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
现在显然我将有一个TabControl,列表中的每个项目都有一个页面F,所有TabControl 页面都有一个TextBlockSomething 1,如下所示:
我想要的只是设计其中一个页面。说在名为 Something 3 的 Camel 页面中添加新的 button。
【问题讨论】:
-
为每个选项卡创建一个特定的 ViewModel,并根据每个 ViewModel 类型使用
DataTemplates。见my example -
只是想知道我是否理解,这一行 [
<DataTemplate DataType="{x:Type local:FileSection}">] 告诉WPF对于所有类型为 T(此处为 FileSection)的 TabPages,DataTemplate 将如下所示。我必须在这条线下面添加我的控件。我说的对吗? -
没错。然后为每个视图创建一个特定的视图。
-
@HighCore 我应该为每个
ViewModel创建一个view还是我必须在上述行下做我的设计工作?如果我必须创建一个视图,我应该在哪里设置它以显示在TabControl Pages中,因为我在你的示例中看不到这样的东西。
标签: c# .net wpf xaml tabcontrol