IT分享网

搜索
热搜: 活动 交友 discuz
查看: 1072|回复: 0

[知识点] WPF 后台动态生成TabControl,页面切换及传值

[复制链接]
发表于 2017-1-23 15:47:53 | 显示全部楼层 |阅读模式
最终效果:
1111.png
页面projectEMCS:前台:

后台:
   #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 GetSystem = GlobalRepertories.DataDictionary["所属系统"];
            foreach (KeyValuePair 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:前台:
        定义一个控件用于传值


后台:
        函数:
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()); 第一种方法获取
        }


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2019-10-19 08:40 , Processed in 0.484375 second(s), 35 queries .

  

QQ|Archiver|手机版|小黑屋|IT分享网 ( 苏ICP备15049123号-2 )  

GMT+8, 2019-10-19 08:40 , Processed in 0.484375 second(s), 35 queries .

Powered by Discuz! X3.2 Designed by 999test.cn

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表