Пример #1
0
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <param name="visual"></param>
        /// <param name="datas"></param>
        private static void GetControlData(Visual visual, List <SaveData> datas)
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visual); i++)
            {
                Visual childVisual = (Visual)VisualTreeHelper.GetChild(visual, i);
                if (childVisual != null)
                {
                    if (childVisual is TextBox)
                    {
                        var txt = childVisual as TextBox;
                        if ("".Equals(txt.Name) || txt.Name.Contains("_"))
                        {
                            continue;
                        }
                        datas.Add(new SaveData("", "TextBox", txt.Name, txt.Text));
                    }
                    else if (childVisual is ComboBox)
                    {
                        var cmb = childVisual as ComboBox;
                        if ("".Equals(cmb.Name) || cmb.Name.Contains("_"))
                        {
                            continue;
                        }
                        datas.Add(new SaveData("", "ComboBox", cmb.Name, cmb.Text));
                    }
                    else if (childVisual is RadioButton)
                    {
                        var cmb = childVisual as RadioButton;
                        if ("".Equals(cmb.Name) || cmb.Name.Contains("_"))
                        {
                            continue;
                        }
                        datas.Add(new SaveData("", "RadioButton", cmb.Name, cmb.IsChecked.ToString()));
                    }
                    else if (childVisual is CheckBox)
                    {
                        var cmb = childVisual as CheckBox;
                        if ("".Equals(cmb.Name) || cmb.Name.Contains("_"))
                        {
                            continue;
                        }
                        datas.Add(new SaveData("", "CheckBox", cmb.Name, cmb.IsChecked.ToString()));
                    }
                    else if (childVisual is ListBox)
                    {
                        var cmb = childVisual as ListBox;
                        if ("".Equals(cmb.Name) || cmb.Name.Contains("_"))
                        {
                            continue;
                        }
                        datas.Add(new SaveData("", "ListBox", cmb.Name, cmb.SelectedIndex.ToString()));
                    }
                    else if (visual is UserControl && visual is IControlDataProvider)
                    {
                        Control control = visual as Control;
                        if ("".Equals(control.Name) || control.Name.Contains("_"))
                        {
                            continue;
                        }
                        IControlDataProvider g = visual as IControlDataProvider;
                        datas.Add(new SaveData("", "IControlDataProvider", control.Name, g.GetControlData()));
                    }

                    GetControlData(childVisual, datas);
                }
            }
        }