Example #1
0
        private void ValidateStackPanel(int index)
        {
            var sp = StackPanel;

            if (sp == null)
            {
                sp = StackPanel = new StackPanel();

                sp.MaxHeight   = TC.ElementHieght;
                sp.Orientation = Orientation.Horizontal;
                sp.DataContext = this;

                TC.Canvas.Children.Add(sp);
            }
            Canvas.SetTop(sp, index * TC.ElementHieght);

            sp.Children.Clear();
            ModelDelta = Model.ItemDelta;

            var name = Model.GetNameId();

            AddModelIdentity();
            AddTreeIndent();
            AddExpandLeft();

            if (Model is PropertyModel pm)
            {
                if (pm.IsDeltaModel)
                {
                    AddPropertyName(name);
                    AddDeltaProperty();
                    CheckItemHasError();
                    return;
                }
                else if (pm.IsTextModel)
                {
                    AddPropertyName(name);
                    AddTextProperty();
                    CheckItemHasError();
                    return;
                }
                else if (pm.IsCheckModel)
                {
                    AddPropertyName(name);
                    AddCheckProperty();
                    CheckItemHasError();
                    return;
                }
                else if (pm.IsComboModel)
                {
                    AddPropertyName(name);
                    AddComboProperty();
                    CheckItemHasError();
                    return;
                }
            }
            else
            {
                var kind = Model.GetKindId();
                var(filterCount, sorting, usage, filterText) = TC.GetFilterParms(Model);
                AddItemKind(kind);
                AddItemName(name);
                if (Model.CanExpandRight)
                {
                    AddExpandRight();
                }
                CheckItemHasError();

                var count = Model.TotalCount;
                if (count > 0)
                {
                    if (Model.CanSort)
                    {
                        AddSortMode();
                    }
                    else
                    {
                        ClearSortMode();
                    }

                    AddTotalCount(count);

                    if (Model.CanFilterUsage)
                    {
                        AddUsageMode(usage);
                    }
                    else
                    {
                        ClearUsageMode();
                    }

                    if (Model.CanFilter)
                    {
                        AddFilterMode();
                    }
                    else
                    {
                        ClearFilterMode();
                    }

                    if (Model.CanFilter)
                    {
                        if (Model.IsFilterVisible)
                        {
                            AddFilterText(filterText);
                            AddFilterCount(filterCount);
                        }
                        else if (usage != Usage.None)
                        {
                            AddFilterCount(filterCount);
                        }
                    }
                    //if (false)//_root.ModelInfo != null)
                    //{
                    //    AddItemInfo(index, m);
                    //}
                }
            }
        }