天天看點

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;//選中子選項

            }

        }

這樣就能實作登入後打開的就是實時房态頁面了。