zoukankan      html  css  js  c++  java
  • wpf 遍历控件及其值

    Xaml代码

    <Window x:Class="XyExecProTime.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:XyExecProTime"
            mc:Ignorable="d"
            Title="MainWindow" Height="760" Width="600">
        <Grid x:Name="rootGrid">
                <TabControl x:Name="tabControl" >
                    <TabItem Header="测试" x:Name="oocTabItem">
                         <StackPanel Orientation="Vertical" x:Name="ooc_stackpanel">
          <WrapPanel>     <TextBox x:Name="txt_a" />     </WrapPanel>     <WrapPanel>     <TextBox x:Name="txt_b"/>     </WrapPanel> </StackPanel> </TabItem> </TabControl> </Grid> </Window>

     Xaml.cs代码

            /// <summary>
            /// 遍历控件获取TextBox中的值!!!
            /// </summary>
            /// <param name="uiControls">界面控件</param>
            private Dictionary<string, string> SetNotEditable(UIElementCollection uiControls)
            {
                Dictionary<string, string> retDic = new Dictionary<string, string>();
                try
                {
                    foreach (UIElement element in uiControls)
                    {
                        if (element is TextBox)
                        {
                            TextBox txtBox = (element as TextBox);
                            string key = txtBox.Name;
                            string value = txtBox.Text;
                            retDic.Add(key, value);
                        }
                        else if (element is Grid)
                        {
                            this.SetNotEditable((element as Grid).Children);
                        }
                        else if (element is WrapPanel)//我用到的是主要是此段代码...大家根据自己的类别可以自定义哈...
                        {
                            foreach (var lab_txt in (element as WrapPanel).Children)
                            {
                                if (lab_txt is TextBox)
                                {
                                    TextBox txtBox = (lab_txt as TextBox);
                                    string key = txtBox.Name;
                                    string value = txtBox.Text;
                                    retDic.Add(key, value);
                                }
                            }
                        }
                    }
    
                }
                catch (Exception)
                {
    
                    throw;
                }
                return retDic;
            }


    //调用....
    Dictionary<string, string> valDic = SetNotEditable(ooc_stackpanel.Children);





  • 相关阅读:
    NTP服务器
    sublime中文设置
    13、软件定时器
    晶振和CPU周期
    红外通信协议
    KEIL使用时的一些配置
    STM32 的内部 FLASH
    STM32的程序下载
    2、触摸屏
    目录
  • 原文地址:https://www.cnblogs.com/love-zf/p/7906485.html
Copyright © 2011-2022 走看看