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); //} } } }