Exemplo n.º 1
0
        void OnItemsChanged(object sender, ItemListChangedArgs e)
        {
            if (IsReseting || RootPanel == null)
            {
                return;
            }

            // RootPanel.Children的0位置是CenterItem,比Items多一个元素!
            if (e.CollectionChange == CollectionChange.ItemInserted)
            {
                Pane item = Items[e.Index] as Pane;
                if (item != null &&
                    item.Pos != PanePosition.Floating &&
                    !RootPanel.Children.Contains(item))
                {
                    RootPanel.Children.Insert(e.Index + 1, item);
                }
            }
            else if (e.CollectionChange == CollectionChange.ItemRemoved)
            {
                RootPanel.Children.RemoveAt(e.Index + 1);
            }
            else
            {
                throw new Exception("Win不支持子项集合重置!");
            }
        }
Exemplo n.º 2
0
        void OnItemsChanged(object sender, ItemListChangedArgs e)
        {
            if (e.CollectionChange == CollectionChange.ItemInserted)
            {
                var item = Items[e.Index];
                InitItem(item);
                _itemsPanel.Children.Insert(e.Index, item);
            }
            else if (e.CollectionChange == CollectionChange.ItemRemoved)
            {
                ((TabItem)_itemsPanel.Children[e.Index]).IsSelected = false;
                _itemsPanel.Children.RemoveAt(e.Index);
            }
            else
            {
                for (int i = 0; i < Items.Count; i++)
                {
                    var item = Items[i];
                    if (_itemsPanel.Children.Count > i)
                    {
                        var elem = _itemsPanel.Children[i];

                        // 内容没变
                        if (item == elem)
                        {
                            continue;
                        }

                        // 变了移除旧元素
                        _itemsPanel.Children.RemoveAt(i);
                    }
                    InitItem(item);
                    _itemsPanel.Children.Insert(i, item);
                }

                // 移除多余的元素
                while (_itemsPanel.Children.Count > Items.Count)
                {
                    _itemsPanel.Children.RemoveAt(_itemsPanel.Children.Count - 1);
                }
            }

            if (!ShowContent)
            {
                _selector.Select(null);
            }
            else if (e.CollectionChange == CollectionChange.ItemInserted)
            {
                _selector.Select(Items[e.Index]);
            }
            else
            {
                _selector.ResetSelection();
            }
            ApplyOutlookStyle();
            OnItemsChanged();
        }
Exemplo n.º 3
0
 static void OnItemsChanged(object sender, ItemListChangedArgs e)
 {
     if (e.CollectionChange == CollectionChange.ItemInserted || e.CollectionChange == CollectionChange.ItemChanged)
     {
         var info = ((ItemList <NotifyInfo>)sender)[e.Index];
         SysVisual.InsertNotifyItem(e.Index, new NotifyItem(info));
     }
     else if (e.CollectionChange == CollectionChange.ItemRemoved)
     {
         SysVisual.RemoveNotifyItem(e.Index);
     }
     else
     {
         SysVisual.ClearAllNotify();
     }
 }
Exemplo n.º 4
0
 void OnItemsChanged(object sender, ItemListChangedArgs e)
 {
     if (e.CollectionChange == CollectionChange.ItemInserted)
     {
         _taskbarPanel.Children.Insert(e.Index, new TaskbarItem(Items[e.Index]));
     }
     else if (e.CollectionChange == CollectionChange.ItemRemoved)
     {
         _taskbarPanel.Children.RemoveAt(e.Index);
     }
     else
     {
         throw new Exception("Win不支持子项集合重置!");
     }
     ResizeAllItems();
 }
Exemplo n.º 5
0
 void OnItemsChanged(object sender, ItemListChangedArgs e)
 {
     if (e.CollectionChange == CollectionChange.ItemInserted)
     {
         Mi mi = ((MiList)sender)[e.Index];
         mi.InitOwner(Owner, this);
     }
     else if (e.CollectionChange == CollectionChange.Reset)
     {
         InitSubsOwner();
     }
     if (_loaded)
     {
         UpdateRoleState();
     }
 }
Exemplo n.º 6
0
Arquivo: Pane.cs Projeto: Daoting/dt
 void OnItemsChanged(object sender, ItemListChangedArgs e)
 {
     if (e.CollectionChange == CollectionChange.ItemRemoved)
     {
         _itemsPanel.Children.RemoveAt(e.Index);
         RemoveUnused();
         RefreshInternal();
     }
     else if (e.CollectionChange == CollectionChange.ItemInserted)
     {
         AddItem(Items[e.Index], e.Index);
         RefreshInternal();
     }
     else
     {
         throw new Exception("Pane不支持子项重置!");
     }
 }
Exemplo n.º 7
0
 void OnContextItemsChanged(object sender, ItemListChangedArgs e)
 {
     if (e.CollectionChange == CollectionChange.ItemInserted)
     {
         Mi mi = _owner.Items[e.Index];
         mi.UpdateOwner(_owner, null);
         Children.Insert(e.Index, mi);
     }
     else if (e.CollectionChange == CollectionChange.ItemRemoved)
     {
         Children.RemoveAt(e.Index);
     }
     else if (e.CollectionChange == CollectionChange.Reset)
     {
         Children.Clear();
         LoadContextItems();
     }
 }
Exemplo n.º 8
0
 void OnItemsChanged(object sender, ItemListChangedArgs e)
 {
     _panel.Children.Clear();
 }