|
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
if (e.Property.Name == "ItemsSource")
{
if (e.OldValue != null)
{
var oldcollection = e.OldValue as INotifyCollectionChanged;
oldcollection.CollectionChanged -= CollectionChanged;
}
if (e.NewValue != null)
{
((DocumentContainer)PART_DockingManager.DocContainer).AddTabDocumentAtLast = true;
var newcollection = e.NewValue as INotifyCollectionChanged;
int count = 0;
foreach (var item in ((IList)e.NewValue))
{
if (item is IDockElement)
{
ContentControl control = new ContentControl() { Content = item };
DockingManager.SetHeader(control, ((IDockElement)item).Header);
if((item as IDockElement).Header == "All Documents")
DockingManager.SetCanFloat(control, false);
if (((IDockElement)item).State == DockState.Document)
{
DockingManager.SetState(control, Syncfusion.Windows.Tools.Controls.DockState.Document);
}
else
{
if (count != 0)
{
DockingManager.SetTargetNameInDockedMode(control, "item" + (count-1).ToString());
DockingManager.SetSideInDockedMode(control, DockSide.Bottom);
}
DockingManager.SetDesiredWidthInDockedMode(control, 220);
control.Name = "item" + (count++).ToString();
}
PART_DockingManager.Children.Add(control);
}
}
newcollection.CollectionChanged += CollectionChanged;
}
}
base.OnPropertyChanged(e);
}
|