您的位置:首页 > 其它

后台动态生成TabControl,页面切换及传值

2015-10-20 08:46 387 查看
最终效果:



页面projectEMCS:前台:

 <Grid x:Name="Page">

            <TextBlock x:Name="TxtType" Visibility="Hidden"></TextBlock>

                <TabControl x:Name="TabControls"  Loaded="TabControls_Loaded">

   </TabControl></Grid>   

后台:

   #region 加载所属系统

        private void TabControls_Loaded(object sender, RoutedEventArgs e)

        {

            TabControl TC = sender as TabControl;

            #region 监控主页加载

            //Tab按钮

            System.Windows.Controls.TabItem TabIndex = new TabItem();

            //BORDER

            System.Windows.Controls.Border BIndex = new Border();

            //Frame

            System.Windows.Controls.Frame FIndex = new Frame();

            TxtType.Text ="12343423434";

            //Tab标题

            TabIndex.Header = "监控主页";

            TabIndex.Tag = "监控主页";

            //填充按钮容器

            FIndex.Source = new Uri("../inpages/projectEMCS/projectEMCSIndexL.xaml", UriKind.Relative);

            BIndex.Child = FIndex;

            TabIndex.Content = BIndex;

            TC.Items.Add(TabIndex);

            //默认选中监控主页

            TC.SelectedItem = TabIndex;

            #endregion

            #region 加载系统

            Dictionary<string, string> GetSystem = GlobalRepertories.DataDictionary["所属系统"];

            foreach (KeyValuePair<string, string> kv in GetSystem)

            {

                //Tab按钮

                System.Windows.Controls.TabItem TabIndex2 = new TabItem();

                //BORDER

                System.Windows.Controls.Border BIndex2 = new Border();

                //Frame

             //   System.Windows.Controls.Frame FIndex2 = new Frame();

                TxtType.Text = kv.Key;

                //Tab标题

                TabIndex2.Header = kv.Key;

                TabIndex2.Tag = kv.Value;

              

                //PIndex.Tag = kv.Value;

            

              

                projectEMCSDoorsL aaa = new projectEMCSDoorsL();

                aaa.TxtKey.Text = kv.Key;    //页面上的控件传值   第一种方法

                aaa.Type = kv.Key;               //页面上声明的一个变量用于传值  第二种方法

                BIndex2.Child = aaa;

                TabIndex2.Content = BIndex2;

                TC.Items.Add(TabIndex2);

            }

            #endregion         

        }

        #endregion   

页面projectEMCSDoorsL:前台:

        定义一个控件用于传值

<TextBox Width="100" x:Name="TxtKey"/>

后台:

        函数:

 public projectEMCSDoorsL()

        {

            InitializeComponent();

          //注,此处是获取不到TxtKey的值的。  只有在 页面的Loaded="UserControl_Loaded"事件里才能获取到该值         

       

        }

//获取值的页面加载事件

 private void UserControl_Loaded(object sender, RoutedEventArgs e)

        {

         //   MessageBox.Show(Convert.ToString(this.Type));    第二种方法获取

              // MessageBox.Show(TxtKey.Text.ToString()); 第一种方法获取

        }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息