コード例 #1
0
        internal void OnRowChange(object sender, RowEventArgsType e, object oParam)
        {
            object      obj2     = oParam;
            Row         r        = (Row)sender;
            RowTemplate template = this.GetTemplate(r);

            switch (e)
            {
            case RowEventArgsType.Selection:
            {
                if (!r.Selected)
                {
                    if (this.m_cSelected > 0)
                    {
                        this.m_cSelected--;
                    }
                    if (r != this.m_rActive)
                    {
                        break;
                    }
                    this.m_rActive = null;
                    return;
                }
                bool flag = (bool)oParam;
                if (this.m_rActive != null)
                {
                    this.m_rActive.ChangeSelection(this.Parent.MultiSelect, false, false);
                }
                if (!flag)
                {
                    this.m_cSelected = this.m_pParent.MultiSelect ? (this.m_cSelected + 1) : 1;
                }
                this.m_rActive = r;
                return;
            }

            case RowEventArgsType.TemplateIndex:
            {
                int num = 0;
                num = -this.GetTemplate(r, (int)oParam).GetHeight(r);
                r.ResetCachedBounds();
                num += template.GetHeight(r);
                this.OnChanged(base.List.IndexOf(r), GridEventArgsType.Resize, num);
                return;
            }

            default:
                if (template.AutoHeight)
                {
                    int actualHeight = r.ActualHeight;
                    r.ResetCachedBounds();
                    int height = template.GetHeight(r);
                    if (height != actualHeight)
                    {
                        this.OnChanged(base.List.IndexOf(r), GridEventArgsType.Resize, height - actualHeight);
                        return;
                    }
                }
                this.Changed(base.List.IndexOf(sender), GridEventArgsType.RowChange, obj2);
                break;
            }
        }
コード例 #2
0
ファイル: RowCollection.cs プロジェクト: north0808/haina
 internal void OnRowChange(object sender, RowEventArgsType e, object oParam)
 {
     object obj2 = oParam;
     Row r = (Row) sender;
     RowTemplate template = this.GetTemplate(r);
     switch (e)
     {
         case RowEventArgsType.Selection:
         {
             if (!r.Selected)
             {
                 if (this.m_cSelected > 0)
                 {
                     this.m_cSelected--;
                 }
                 if (r != this.m_rActive)
                 {
                     break;
                 }
                 this.m_rActive = null;
                 return;
             }
             bool flag = (bool) oParam;
             if (this.m_rActive != null)
             {
                 this.m_rActive.ChangeSelection(this.Parent.MultiSelect, false, false);
             }
             if (!flag)
             {
                 this.m_cSelected = this.m_pParent.MultiSelect ? (this.m_cSelected + 1) : 1;
             }
             this.m_rActive = r;
             return;
         }
         case RowEventArgsType.TemplateIndex:
         {
             int num = 0;
             num = -this.GetTemplate(r, (int) oParam).GetHeight(r);
             r.ResetCachedBounds();
             num += template.GetHeight(r);
             this.OnChanged(base.List.IndexOf(r), GridEventArgsType.Resize, num);
             return;
         }
         default:
             if (template.AutoHeight)
             {
                 int actualHeight = r.ActualHeight;
                 r.ResetCachedBounds();
                 int height = template.GetHeight(r);
                 if (height != actualHeight)
                 {
                     this.OnChanged(base.List.IndexOf(r), GridEventArgsType.Resize, height - actualHeight);
                     return;
                 }
             }
             this.Changed(base.List.IndexOf(sender), GridEventArgsType.RowChange, obj2);
             break;
     }
 }