1. ItemsSource="{Binding GroupList}" SelectedItem="{Binding SelectedGroupItem,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource:绑定的数据列表
SelectedItem:当前选中项
2.<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock></TextBlock>
<TextBlock Text="{Binding GroupName}" Tag="{Binding GroupName}" MaxWidth="80" TextTrimming="WordEllipsis"></TextBlock>
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
这里的意思是在TabControl的标签上,做了一个TextBlock,数据绑定的是GroupName,班级名,级“一班”,“二班”,“三班”
3.TabControl中使用了ListBox,注意事项
using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; using System.Text.RegularExpressions; using System.Windows.Input; using System.Net; using System.IO; using System.Text; using System.Security.Cryptography.X509Certificates; using System.Net.Security; using System.Collections.Generic; using Newtonsoft.Json; using System; using System.Runtime.InteropServices; using System.Xml; using MVVM.Model; using System.Xml.Linq; using System.Windows; using MVVM.communication; using System.Threading; using Microsoft.Win32; using MVVM.Service; using MVVM.ftp; using System.Linq; using System.Collections.ObjectModel; namespace MVVM.ViewModel { /// <summary> /// This class contains properties that the main View can data bind to. /// <para> /// Use the <strong>mvvminpc</strong> snippet to add bindable properties to this ViewModel. /// </para> /// <para> /// You can also use Blend to data bind with the tool's support. /// </para> /// <para> /// See http://www.galasoft.ch/mvvm /// </para> /// </summary> public class MainViewModel : ViewModelBase { /// <summary> /// TabControl 绑定的数据列表 /// </summary> public ObservableCollection<StudentGroup> GroupList//ObservableCollection { get { return _groupList; } set { Set(() => GroupList, ref _groupList, value); } } private ObservableCollection<StudentGroup> _groupList = new ObservableCollection<StudentGroup>(); /// <summary> /// 当前选中的TabControl /// </summary> public StudentGroup SelectedGroupItem { get { return _selectedGroupItem; } set { Set(() => SelectedGroupItem, ref _selectedGroupItem, value); } } private StudentGroup _selectedGroupItem; public MainViewModel() { //TabControl 绑定的数据列表 初始化 ObservableCollection<Student> g1StuList = new ObservableCollection<Student>(); Student s1 = new Student(1,"zhangsan","110","bj"); g1StuList.Add(s1); StudentGroup g1 = new StudentGroup(1,"一班","学习好",g1StuList); ObservableCollection<Student> g2StuList = new ObservableCollection<Student>(); Student s2 = new Student(2, "lisi", "120", "bj"); Student s3 = new Student(3, "wanger", "130", "bj"); Student s4 = new Student(4, "maqi", "140", "bj"); Student s5 = new Student(5, "gouba", "150", "bj"); g2StuList.Add(s2); g2StuList.Add(s3); g2StuList.Add(s4); g2StuList.Add(s5); StudentGroup g2 = new StudentGroup(2, "二班", "爱玩", g2StuList); ObservableCollection<Student> g3StuList = new ObservableCollection<Student>(); Student s6 = new Student(1, "zhangsan", "183", "shanghai"); Student s7 = new Student(1, "zhangsan", "185", "nanjing"); g3StuList.Add(s6); g3StuList.Add(s7); StudentGroup g3 = new StudentGroup(3, "三班", "体育好", g3StuList); GroupList.Add(g1); GroupList.Add(g2); GroupList.Add(g3); //当前选中的TabControl 赋初值 SelectedGroupItem = GroupList[1]; } } }