• 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);





  • 相关阅读:
    二叉树的递归遍历 The Falling Leaves UVa 699
    二叉树的递归遍历 天平UVa839
    二叉树的递归遍历 Tree UVa548
    通过缓冲传递数据-结构体
    fread读取文件(二进制文件)
    socket编程--相关函数--sendto();read();
    socket 编程--sockaddr与sockaddr_in区别与联系(转)
    百度Apollo 尝试
    检测服务器端口是否被占用
    qt5的.ui文件在VS2010中无法编译问题
  • 原文地址:https://www.cnblogs.com/love-zf/p/7906485.html
Copyright © 2020-2023  润新知