• TabControl


    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];
    
    
            }
    
          
        }
    }
    View Code
    <Window x:Class="MVVM.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
            xmlns:command="http://www.galasoft.ch/mvvmlight"
            Title="MainWindow" Height="600" Width="700">
        <Window.DataContext>
            <Binding Path="Main" Source="{StaticResource Locator}"></Binding>
        </Window.DataContext>
        <Grid>
            <Grid.Resources>
                <Style x:Key="BackColor" TargetType="Rectangle">
                    <Setter Property="Fill" Value="Black"></Setter>
                </Style>
            </Grid.Resources>
            <Grid.RowDefinitions>
                <RowDefinition Height="3*"/>
                <RowDefinition Height="*"/>
    
    
            </Grid.RowDefinitions>
    
            <TabControl ItemsSource="{Binding GroupList}" SelectedItem="{Binding SelectedGroupItem,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="0,10,0,54" Grid.RowSpan="4">
                <!--<TabControl.Resources>
                    <Style></Style>
                </TabControl.Resources>-->
                <TabControl.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock></TextBlock>
                            <TextBlock Text="{Binding GroupName}" Tag="{Binding GroupName}" MaxWidth="80" TextTrimming="WordEllipsis"></TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </TabControl.ItemTemplate>
                <TabControl.ContentTemplate>
                    <DataTemplate>
                        <!--<DataTemplate.Resources>
                            <Style></Style>
                        </DataTemplate.Resources>-->
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition Height="200"/>
                            </Grid.RowDefinitions>
                            <StackPanel>
                                <StackPanel>
                                    <TextBlock Text="班级ID" Grid.Column="0" Grid.Row="0"></TextBlock>
                                    <TextBlock Text="{Binding GroupID}" Grid.Column="1" Grid.Row="0"></TextBlock>
                                </StackPanel>
                                <StackPanel>
                                    <TextBlock Text="班级名称" Grid.Column="0" Grid.Row="1"></TextBlock>
                                    <TextBlock Text="{Binding GroupName}" Grid.Column="1" Grid.Row="1"></TextBlock>
                                </StackPanel>
                                <StackPanel>
                                    <TextBlock Text="班级描述" Grid.Column="0" Grid.Row="2"></TextBlock>
                                    <TextBlock Text="{Binding GroupDesc}" Grid.Column="1" Grid.Row="2"></TextBlock>
                                </StackPanel>
                            </StackPanel>
                            <!-- 横线-->
                            <Rectangle Grid.Row="1" Margin="5,0,30,5" Height="2" VerticalAlignment="Center" HorizontalAlignment="Stretch"></Rectangle>
                            <ScrollViewer Grid.Row="2" CanContentScroll="False" Focusable="False" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
                                <ListBox ItemsSource="{Binding StuList}">
                                    <!--<ListBox.Resources>
                                        <Style></Style>
                                    </ListBox.Resources>-->
                                    
                                    <ListBox.ItemTemplate>
                                        <DataTemplate>
                                            <Expander IsExpanded="True">
                                                <Expander.HeaderTemplate>
                                                    <DataTemplate>
                                                        <StackPanel>
                                                            <TextBlock Text="{Binding Name}"></TextBlock>
                                                        </StackPanel>
                                                    </DataTemplate>
                                                </Expander.HeaderTemplate>
                                                <Grid>
                                                    <Grid.RowDefinitions>
                                                        <RowDefinition />
                                                        <RowDefinition />
                                                        <RowDefinition />
                                                    </Grid.RowDefinitions>
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition />
                                                        <ColumnDefinition />
                                                    </Grid.ColumnDefinitions>
                                                    <StackPanel Grid.Row="0" Grid.Column="0">
                                                        <TextBlock Text="ID:"></TextBlock>
                                                    </StackPanel>
                                                    <StackPanel Grid.Row="0" Grid.Column="1">
                                                        <TextBlock Text="{Binding ID}"></TextBlock>
                                                    </StackPanel>
                                                    <StackPanel Grid.Row="1" Grid.Column="0">
                                                        <TextBlock Text="电话:"></TextBlock>
                                                    </StackPanel>
                                                    <StackPanel Grid.Row="1" Grid.Column="1">
                                                        <TextBlock Text="{Binding Telephone}"></TextBlock>
                                                    </StackPanel>
                                                    <StackPanel Grid.Row="2" Grid.Column="0">
                                                        <TextBlock Text="地址:"></TextBlock>
                                                    </StackPanel>
                                                    <StackPanel Grid.Row="2" Grid.Column="1">
                                                        <TextBlock Text="{Binding Address}"></TextBlock>
                                                    </StackPanel>
                                                </Grid>
                                            </Expander>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>
                                
                            </ScrollViewer>
                        </Grid>
                        
                    </DataTemplate>
                </TabControl.ContentTemplate>
    
            </TabControl>
    
            <StackPanel Grid.Row="1">
    
                <!--<Button Content="点击我" Command="{Binding ClickCommand}"></Button>-->
            </StackPanel>
        </Grid>
    </Window>
    View Code
    using GalaSoft.MvvmLight;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MVVM.Model
    {
        public class StudentGroup : ObservableObject
        {
            public int GroupID
            {
                get { return _groupID; }
                set { Set(() => GroupID, ref _groupID, value); }
            }
            private int _groupID;
            public String GroupName
            {
                get { return _groupName; }
                set { Set(() => GroupName, ref _groupName, value); }
            }
            private String _groupName;
    
            public String GroupDesc
            {
                get { return _groupDesc; }
                set { Set(() => GroupDesc, ref _groupDesc, value); }
            }
            private String _groupDesc;
    
            public ObservableCollection<Student> StuList
            {
                get { return _stuList; }
                set { Set(() => StuList, ref _stuList, value); }
            }
            private ObservableCollection<Student> _stuList = new ObservableCollection<Student>();
    
            public StudentGroup(int id, String groupName, String groupDesc,  ObservableCollection<Student> stuList)
            {
                this.GroupID = id;
                this.GroupName = groupName;
                this.GroupDesc = groupDesc;
                this.StuList = stuList;
            }
    
            public StudentGroup ()
            {
    
            }
        }
    }
    View Code
    using GalaSoft.MvvmLight;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace MVVM.Model
    {
        public class Student : ObservableObject
        {
            public int ID
            {
                get { return _id; }
                set { Set(() => ID, ref _id, value); }
            }
            private int _id;
            public String Name
            {
                get { return _name; }
                set { Set(() => Name, ref _name, value); }
            }
            private String _name;
            public String Telephone
            {
                get { return _telephone; }
                set { Set(() => Telephone, ref _telephone, value); }
            }
            private String _telephone;
            public String Address
            {
                get { return _address; }
                set { Set(() => Address, ref _address, value); }
            }
            private String _address;
    
            public Student(int id, String name, String tele, String address)
            {
                this.ID = id;
                this.Name = name;
                this.Telephone = tele;
                this.Address = address;
            }
        }
    }
    View Code

  • 相关阅读:
    GYM 101128 J.Saint John Festival(求凸包是否包含点)
    GYM 101128 F.Landscaping(网络流)
    ACM ICPC 2017 Warmup Contest 2 I. Integral Polygons(计算几何+动态规划)
    ACM ICPC 2017 Warmup Contest 1 A. Artwork(逆向+dfs+并查集)
    51nod 1225 余数之和(数论)
    51nod 1397 最大二分图(图论+思维)
    51nod 1444 破坏道路(任意两点最短路径)
    网络流24题——孤岛营救问题(状压+分层图)
    ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
    bzoj1577 [USACO09FEB] Fair Shuttle
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/6594021.html
Copyright © 2020-2023  润新知