예제 #1
0
파일: MyGrid.cs 프로젝트: Camel-RD/Klons
        public void UnLinkGrid()
        {
            if (MyDataBC == null)
            {
                return;
            }
            var mi = myData as INotifyPropertyChanged;

            if (mi != null)
            {
                mi.PropertyChanged -= OnMyGridPropertyChanged;
            }
            var mbc = MyData as IBindableComponent;

            if (mbc != null)
            {
                mbc.DataBindings.Clear();
            }
            for (int i = 0; i < gridRowList.Count; i++)
            {
                var rowdef = gridRowList[i];
                try
                {
                    rowdef.UnLinkRow();
                }
                catch (Exception ex)
                {
                    throw new Exception("UnLinkRow failed: " + rowdef.Name, ex);
                }
            }
            linkedRows.Clear();
            LinkedCells.Clear();
        }
예제 #2
0
파일: MyGrid.cs 프로젝트: Camel-RD/Klons
        public void LinkGrid()
        {
            if (!makeGridCompleted)
            {
                throw new Exception("MakeGrid not completed");
            }

            LinkedCells.Clear();
            LinkedRows.Clear();

            if (MyDataBC == null)
            {
                throw new Exception("Bad MyData");
            }

            for (int i = 0; i < gridRowList.Count; i++)
            {
                var rowdef = gridRowList[i];
                try
                {
                    rowdef.LinkRow();
                    rowdef.UpdateDataCell();
                }
                catch (Exception ex)
                {
                    throw new Exception("LinkRow failed: " + rowdef.Name, ex);
                }
            }
        }
예제 #3
0
파일: MyGrid.cs 프로젝트: Camel-RD/Klons
        public void OnPropertyChanged(string propname = null)
        {
            if (propname == null)
            {
                return;
            }

            IReadOnlyCollection <MyGridRowBase> gridrows;

            if (LinkedRows.TryGetValue(propname, out gridrows))
            {
                object val = Utils.GetProperty(MyData, propname);
                foreach (var gr in gridrows)
                {
                    gr.Value = val;
                }
                return;
            }

            CellContext cc;

            if (LinkedCells.TryGetValue(propname, out cc))
            {
                object val = Utils.GetProperty(MyData, propname);
                cc.Cell.Model.ValueModel.SetValue(cc, val);
            }
        }
예제 #4
0
파일: MyGrid.cs 프로젝트: Camel-RD/Klons
        public void MakeGrid()
        {
            LinkedCells.Clear();
            LinkedRows.Clear();

            this.ColumnsCount     = 3;
            this.Columns[0].Width = ColumnWidth1;
            this.Columns[1].Width = ColumnWidth2;
            this.Columns[2].Width = ColumnWidth3;

            for (int i = 0; i < gridRowTemplateList.Count; i++)
            {
                var rowdef = gridRowTemplateList[i];
                rowdef.MakeTemplateRow(this);
            }

            int rowscount = 0;

            for (int i = 0; i < gridRowList.Count; i++)
            {
                rowscount += gridRowList[i].GetRowCount();
            }

            this.RowsCount = rowscount;

            int rownr = 0;

            for (int i = 0; i < gridRowList.Count; i++)
            {
                var rowdef = gridRowList[i];
                rowdef.MakeRow(Rows[rownr]);
                rownr += rowdef.GetRowCount();
            }
            ScaleControlA(scaleFactor);

            this.Controller.AddController(MarkCurrentRowController.Default);

            makeGridCompleted = true;
        }