16 #region Overridden Members
18 protected override void OnAttached()
22 _adornedElement = this.AssociatedObject;
23 _adornedElement.Loaded += AdornedElement_Loaded;
25 ICollectionView collectionViewSource = CollectionViewSource.GetDefaultView(_adornedElement.Items);
26 if (collectionViewSource !=
null)
28 collectionViewSource.CollectionChanged += ItemsChanged;
32 protected override void OnDetaching()
35 _adornedElement.Loaded -= AdornedElement_Loaded;
37 ICollectionView collectionViewSource = CollectionViewSource.GetDefaultView(_adornedElement.ItemsSource);
38 if (collectionViewSource !=
null)
40 collectionViewSource.CollectionChanged -= ItemsChanged;
48 #region Dependency properties
55 get {
return (
DataTemplate)GetValue(DataTemplateProperty); }
56 set { SetValue(DataTemplateProperty, value); }
65 get {
return (
object)GetValue(DataProperty); }
66 set { SetValue(DataProperty, value); }
74 #region Private Members and Events
76 private ItemsControl _adornedElement;
79 private void AdornedElement_Loaded(
object sender, RoutedEventArgs e)
82 UpdateAdornerVisibility();
85 private void ItemsChanged(
object sender, NotifyCollectionChangedEventArgs args)
86 => UpdateAdornerVisibility();
88 private void UpdateAdornerVisibility()
90 if (_itemsControlAdorner ==
null) {
return; }
91 _itemsControlAdorner.Visibility = _adornedElement.Items.Count == 0 ? Visibility.Visible : Visibility.Collapsed;