public static bool Validate(this ListTabControl source)
        {
            foreach (var item in source.Items)
            {
                var content = item as ContentControl;
                if (content == null)
                {
                    continue;
                }

                var ui = content.Content as FrameworkElement;
                if (ui == null)
                {
                    continue;
                }
                if (ui.BindingGroup == null)
                {
                    continue;
                }

                foreach (var exp in ui.BindingGroup.BindingExpressions)
                {
                    exp.UpdateSource();
                }
            }

            return(source.GetHasError());
        }
示例#2
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            tabControl = GetTemplateChild("tabControl") as ListTabControl;
            dataGrid   = GetTemplateChild("dg") as ItemsControl;
        }
        public static ValidationError[] GetErrors(this ListTabControl source)
        {
            List <ValidationError> list = new List <ValidationError>();

            foreach (var item in source.Items)
            {
                var content = item as ContentControl;
                if (content == null)
                {
                    continue;
                }

                var ui = content.Content as DependencyObject;
                if (ui == null)
                {
                    continue;
                }

                if (System.Windows.Controls.Validation.GetHasError(ui))
                {
                    list.AddRange(System.Windows.Controls.Validation.GetErrors(ui));
                }
            }

            return(list.ToArray());
        }
        public static bool GetHasError(this ListTabControl source)
        {
            bool has = false;

            foreach (var item in source.Items)
            {
                var content = item as ContentControl;
                if (content == null)
                {
                    continue;
                }

                var ui = content.Content as DependencyObject;
                if (ui == null)
                {
                    continue;
                }

                has = has || System.Windows.Controls.Validation.GetHasError(ui);
                if (has)
                {
                    break;
                }
            }

            return(has);
        }
        public static List <BindingExpressionBase> ExtractBindingExpressions(this ListTabControl source)
        {
            List <BindingExpressionBase> list = new List <BindingExpressionBase>();

            foreach (var item in source.Items)
            {
                var content = item as ContentControl;
                if (content == null)
                {
                    continue;
                }

                var ui = content.Content as FrameworkElement;
                if (ui == null)
                {
                    continue;
                }
                if (ui.BindingGroup == null)
                {
                    continue;
                }

                list.AddRange(ui.BindingGroup.BindingExpressions.ToList());
                ui.BindingGroup.BindingExpressions.Clear();
            }

            return(list);
        }
        public static string GetError(this ListTabControl source)
        {
            foreach (var item in source.Items)
            {
                var content = item as ContentControl;
                if (content == null)
                {
                    continue;
                }

                var ui = content.Content as DependencyObject;
                if (ui == null)
                {
                    continue;
                }

                if (System.Windows.Controls.Validation.GetHasError(ui))
                {
                    return(System.Windows.Controls.Validation.GetErrors(ui)[0].ErrorContent.ToString());
                }
            }

            return(null);
        }
 public ListTabControlItemSelectorController(ListTabControl tabControl)
 {
     this.tabControl = tabControl;
 }