54 lines
1.5 KiB
C#
54 lines
1.5 KiB
C#
using System.Collections.Specialized;
|
|
using System.Windows;
|
|
|
|
namespace HandyControl.Controls
|
|
{
|
|
public class TransferGroup : SimpleItemsControl
|
|
{
|
|
protected override void Refresh()
|
|
{
|
|
if (Items.Count > 0)
|
|
{
|
|
foreach (FrameworkElement item in Items)
|
|
{
|
|
item.Style = ItemContainerStyle;
|
|
ItemsHost.Children.Add(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override void OnItemTemplateChanged(DependencyPropertyChangedEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
protected override void OnItemContainerStyleChanged(DependencyPropertyChangedEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
protected override DependencyObject GetContainerForItemOverride() => new TransferItem();
|
|
|
|
protected override bool IsItemItsOwnContainerOverride(object item) => item is TransferItem;
|
|
|
|
protected override void OnItemsChanged(object sender, NotifyCollectionChangedEventArgs e)
|
|
{
|
|
if (ItemsHost == null) return;
|
|
if (e.OldItems != null)
|
|
{
|
|
foreach (FrameworkElement item in e.OldItems)
|
|
{
|
|
ItemsHost.Children.Remove(item);
|
|
}
|
|
}
|
|
if (e.NewItems != null)
|
|
{
|
|
if (e.NewItems[0] is FrameworkElement item)
|
|
{
|
|
item.Style = ItemContainerStyle;
|
|
ItemsHost.Children.Insert(e.NewStartingIndex, item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |