天天看点

MVVM登录后显示自定义的主页面

一、功能介绍:

登录成功后打开实时房态页面:

MVVM登录后显示自定义的主页面

图(1)

MVVM登录后显示自定义的主页面

完成效果图

<!--实时房态-->

<Grid Grid.Row="2">

     <TabControl Name="tab_Main" Background="#ECEDF2" BorderThickness="0" Tag="110"/>

</Grid>

右键查看代码/或F7 转到后台:

public MainWindow(){//把页面上定义的name值传到ViewModel层。

            InitializeComponent();

            this.DataContext = new ViewModels.MainViewModel(this.tab_Main);

        }

ViewModel层:

首先定义两个TabControl属性:

public static TabControl TC; //选项卡

public static TabControl tabControl;

public MainViewModel(TabControl TC) {

       LoadedCommand = new RelayCommand(Loaded);

       CloseCommand = new RelayCommand(CloseWindow);

       tabControl = TC;//接收传过来的值然后赋值给tabControl

}

//加载事件

        private void Loaded()

            TC = tabControl;//回传

            workDate = DateTime.Now.ToString("yyyy-MM-dd");

            RealTimeHouse myHome = new RealTimeHouse();

            AddItem("实时房态", myHome);//myHome

        }

//为tab添加页面

        public static void AddItem(string trname, UserControl uc) {

            bool bolWhetherBe = false;//是否存在当前选项

            //1、判断当前选项卡的个数是否大于0

            if (TC.Items.Count > 0) {

                for (int i = 0; i < TC.Items.Count; i++)

                    if (((UCTabItemWithClose)TC.Items[i]).Name == trname)//判断是否存在

                    {

TC.SelectedItem = ((UCTabItemWithClose)TC.Items[i]);//选中子选项

                        bolWhetherBe = true; break;

                    }

                }

                //2、是否存在当前选项

                if (bolWhetherBe == false) {

                    //3、创建子选项

                    UCTabItemWithClose item = new UCTabItemWithClose();//创建子选项

                    item.Name = trname;//名称 item.Header = string.Format(trname);//标头名称

                    item.Content = uc;//子选择里面的内容                 

                    item.Margin = new Thickness(0, 0, 1, 0); item.Height = 28;

                    TC.Items.Add(item);//添加子选项 TC.SelectedItem = item;//选中子选项

                }

            }

            else{

                UCTabItemWithClose item = new UCTabItemWithClose();//创建子选项

                item.Name = trname;//名称 item.Header = string.Format(trname);//标头名称

                item.Content = uc;//子选择里面的内容 item.Margin = new Thickness(0, 0, 1, 0);

                item.Height = 28; TC.Items.Add(item);//添加子选项TC.SelectedItem = item;//选中子选项

            }

        }

这样就能实现登录后打开的就是实时房态页面了。