Beispiel #1
0
        private bool BindingMemberInfoInDataManager(I3TreeViewBindingMemberInfo bindingMemberInfo)
        {
            this.keyDescriptor       = null;
            this.parentKeyDescriptor = null;
            this.displayDescriptor   = null;
            this.sortDescriptor      = null;
            this.checkDescriptor     = null;
            this.imageDescriptor     = null;

            if (this.dataManager != null)
            {
                PropertyDescriptorCollection itemProperties = this.dataManager.GetItemProperties();
                int count = itemProperties.Count;
                for (int i = 0; i < count; i++)
                {
                    //if (!typeof(IList).IsAssignableFrom(itemProperties[i].PropertyType))//???????????????
                    //{
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.KeyMember))
                    {
                        this.keyDescriptor = itemProperties[i];
                    }
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.ParentKeyMember))
                    {
                        this.parentKeyDescriptor = itemProperties[i];
                    }
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.DisplayMember))
                    {
                        this.displayDescriptor = itemProperties[i];
                    }
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.SortMember))
                    {
                        this.sortDescriptor = itemProperties[i];
                    }
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.CheckMember))
                    {
                        this.checkDescriptor = itemProperties[i];
                    }
                    if (itemProperties[i].Name.Equals(bindingMemberInfo.ImageMember))
                    {
                        this.imageDescriptor = itemProperties[i];
                    }
                    //}
                }


                if (this.keyDescriptor != null && this.parentKeyDescriptor != null && this.displayDescriptor != null)
                {
                    return(true);
                }
            }


            return(false);
        }
Beispiel #2
0
        public override bool Equals(object obj)
        {
            if (obj == null || obj.GetType() != typeof(I3TreeViewBindingMemberInfo))
            {
                return(false);
            }
            I3TreeViewBindingMemberInfo dest = obj as I3TreeViewBindingMemberInfo;

            return(string.Equals(this.keyMember, dest.keyMember) && string.Equals(this.parentKeyMember, dest.parentKeyMember) &&
                   string.Equals(this.displayMember, dest.displayMember) && string.Equals(this.sortMember, dest.sortMember) &&
                   this.sortMode == dest.sortMode && string.Equals(this.imageMember, dest.imageMember));
        }
Beispiel #3
0
        private void SetDataConnection(object newDataSource, I3TreeViewBindingMemberInfo newBindingInfo, bool force)
        {
            bool flag  = this.dataSource != newDataSource;
            bool flag2 = !this.bindingInfo.Equals(newBindingInfo);

            if (!this.inSetDataConnection)
            {
                try
                {
                    if ((force || flag) || flag2)
                    {
                        this.inSetDataConnection = true;

                        this.nodeList.Clear();
                        this.Nodes.Clear();

                        IList list  = (this.DataManager != null) ? this.DataManager.List : null;
                        bool  flag3 = this.DataManager == null;
                        this.UnwireDataSource();
                        this.dataSource  = newDataSource;
                        this.bindingInfo = newBindingInfo;
                        this.WireDataSource();
                        if (this.isDataSourceInitialized)
                        {
                            CurrencyManager manager = null;
                            if (((newDataSource != null) && (this.BindingContext != null)) && (newDataSource != Convert.DBNull))
                            {
                                manager = (CurrencyManager)this.BindingContext[newDataSource];
                            }
                            if (this.dataManager != manager)
                            {
                                if (this.dataManager != null)
                                {
                                    this.dataManager.PositionChanged -= new EventHandler(this.DataManager_PositionChanged);
                                    this.dataManager.ListChanged     -= new ListChangedEventHandler(dataManager_ListChanged);
                                }
                                this.dataManager = manager;
                                if (this.dataManager != null)
                                {
                                    this.dataManager.PositionChanged += new EventHandler(this.DataManager_PositionChanged);
                                    this.dataManager.ListChanged     += new ListChangedEventHandler(dataManager_ListChanged);
                                }
                            }
                            if (((this.dataManager != null) && (flag2 || flag)) && (((this.bindingInfo != null) && this.bindingInfo.Check()) && !this.BindingMemberInfoInDataManager(this.bindingInfo)))
                            {
                                throw new ArgumentException("BindingMemberInfo Error");
                            }
                            //if (((this.dataManager != null) && ((flag || flag2) || force)) && (flag2 || (force && ((list != this.dataManager.List) || flag3))))
                            //{
                            //this.DataManager_ItemChanged(this.dataManager, null);
                            //}
                        }
                        this.InitNodes();
                        if (this.Nodes.Count > 0)
                        {
                            this.SelectedNode = this.Nodes[0];
                        }
                        //this.displayMemberConverter = null;
                    }
                    //if (flag)
                    //{
                    //    this.OnDataSourceChanged(EventArgs.Empty);
                    //}
                    //if (flag2)
                    //{
                    //    this.OnBindingMemberInfoChanged(EventArgs.Empty);
                    //}
                }
                finally
                {
                    this.inSetDataConnection = false;
                }
            }
        }