Saturday, February 7, 2015

Code Snippet to walk Visual Tree for Dev Express GridControl Specifics


        private void AssociatedObject_LayoutUpdated(object sender, EventArgs e)
        {
            var v = AssociatedObject.View;

            HierarchyPanel hp = VisualTreeHelpers.FindChild(v);
            GridRow grs = VisualTreeHelpers.FindChild(hp);
            var ie = v.FindLogicalChildren();
            var ie2 = v.FindVisualChildren();
            int i1 = ie.Count();
            int i2 = ie2.Count();

            int i3 = hp.FindVisualChildren().Count();  
        }

        private GridControl dgc;
        private bool b;
        private void AssociatedObject_MasterRowExpanded(object sender, RowEventArgs e)
        {
             dgc= AssociatedObject.GetDetail(e.RowHandle) as GridControl;
             dgc.ItemsSourceChanged+=dgc_ItemsSourceChanged;
            var i = dgc.ItemsSource;
            var col = dgc.ItemsSource as ObservableCollection;
            col.CollectionChanged += col_CollectionChanged;

        }

        private void BlankoutColumns(int rowHandle)
        {
            var dgc = AssociatedObject.GetVisibleDetail(rowHandle) as GridControl;
            var dc = dgc.View.DataControl as GridControl;
            
            for (int i = 0; i < dc.VisibleRowCount; i++)
            {
                int h = dc.GetRowHandleByVisibleIndex(i);
                foreach (var c in  dc.Columns) 
                {
                    if (c.Name == "ChildName")
                    {
                        var v = dc.GetCellValue(h, c);
                       // c.CellTemplate = new DataTemplate(); // take out data template so next update never shown
                     //   dc.SetCellValue(h, c, null); // blank out already rendered text
                    }
                }
            }
        }
            DependencyPropertyDescriptor propertyDescriptor = DependencyPropertyDescriptor.FromProperty(GridViewBase.VisibleColumnsProperty, typeof(GridViewBase));
            propertyDescriptor.AddValueChanged(AssociatedObject.View, VisibleColumnsChanged);


No comments: