Exemple #1
0
        public Main(RouterData Data)
        {
            this.Data = Data;

            InitializeComponent();

            RoutingList.Items.Clear();

            foreach (var Item in Data.StaticRoutes)
            {
                RoutingList.Items.Add(CreateLVIFromStaticRoutingRule(Item));
            }
            RoutingList.Refresh();

            Data.StaticRoutes.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(
                delegate(object Sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs EventArgs)
            {
                if (EventArgs.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
                {
                    foreach (var ItemObj in EventArgs.NewItems)
                    {
                        StaticRoutingData Item = (StaticRoutingData)ItemObj;

                        RoutingList.Items.Add(CreateLVIFromStaticRoutingRule(Item));
                    }
                }
                else if (EventArgs.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
                {
                    foreach (var ItemObj in EventArgs.OldItems)
                    {
                        StaticRoutingData Item = (StaticRoutingData)ItemObj;

                        foreach (var ListItemObj in RoutingList.Items)
                        {
                            var ListViewItem = ListItemObj as ListViewItem;
                            if (ListViewItem.Tag.Equals(Item))
                            {
                                RoutingList.Items.Remove(ListViewItem);
                                break;
                            }
                        }
                    }
                }

                RefreshDiff();
            }
                );
        }