| | |
| | | |
| | | static TreeDataGrid() |
| | | { |
| | | //ScrollViewer.HorizontalScrollBarVisibilityProperty |
| | | // .OverrideMetadata(typeof(TreeDataGrid), new FrameworkPropertyMetadata(ScrollBarVisibility.Disabled)); |
| | | //ScrollViewer.VerticalScrollBarVisibilityProperty |
| | | // .OverrideMetadata(typeof(TreeDataGrid), new FrameworkPropertyMetadata(ScrollBarVisibility.Disabled)); |
| | | ScrollViewer.HorizontalScrollBarVisibilityProperty |
| | | .OverrideMetadata(typeof(TreeDataGrid), new FrameworkPropertyMetadata(ScrollBarVisibility.Disabled)); |
| | | ScrollViewer.VerticalScrollBarVisibilityProperty |
| | | .OverrideMetadata(typeof(TreeDataGrid), new FrameworkPropertyMetadata(ScrollBarVisibility.Disabled)); |
| | | } |
| | | |
| | | protected override DependencyObject GetContainerForItemOverride() |
| | |
| | | { |
| | | if (e.OldValue != null && e.OldValue is TreeItemData oldTreeData) |
| | | { |
| | | oldTreeData.IsExpandedChange -= DataIsExpandedChange; |
| | | oldTreeData.VisibleChange -= DataVisiableChange; |
| | | } |
| | | if (DataContext != null && DataContext is TreeItemData treeData) |
| | | { |
| | | Visibility = treeData.IsVisible ? Visibility.Visible : Visibility.Collapsed; |
| | | treeData.IsExpandedChange += DataIsExpandedChange; |
| | | treeData.VisibleChange += DataVisiableChange; |
| | | } |
| | | } |
| | | |
| | | private void DataIsExpandedChange(object sender, bool IsExpanded) |
| | | { |
| | | object parent = ItemsControl.ItemsControlFromItemContainer(this); |
| | | if (sender is TreeItemData tid) |
| | | { |
| | | foreach (var data in tid.Items) |
| | | { |
| | | data.IsVisible = IsExpanded; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void DataVisiableChange(object sender, bool visiable) |
| | | { |
| | | object parent = ItemsControl.ItemsControlFromItemContainer(this); |
| | | if (parent != null && parent is TreeDataGrid treeDataGrid) |
| | | { |
| | | treeDataGrid.OnExpandedChange(visiable); |
| | | } |
| | | this.Visibility = visiable ? Visibility.Visible : Visibility.Collapsed; |
| | | //if (parent != null && parent is TreeDataGrid treeDataGrid) |
| | | //{ |
| | | // treeDataGrid.OnExpandedChange(visiable); |
| | | //} |
| | | } |
| | | } |
| | | } |