获得GridControl表格指定列的模板列控件的值

    xiaoxiao2023-10-01  167

    ## 前端 <dxg:GridControl Grid.Row="1" x:Name="dgTaskAllocation"> <dxg:GridControl.View> <dxg:TableView ShowGroupPanel="False" AllowEditing="False" WaitIndicatorType="Panel" RowDoubleClick="TableView_RowDoubleClick"> <dxg:TableView.ColumnHeaderContentStyle> <Style TargetType="{x:Type ContentControl}"> <Setter Property="HorizontalAlignment" Value="Center" /> </Style> </dxg:TableView.ColumnHeaderContentStyle> </dxg:TableView> </dxg:GridControl.View> <dxg:GridControl.Columns> <dxg:GridColumn Header="选择" SortIndex="0" FieldName="Check" Width="50" SortOrder="Ascending"> <dxg:GridColumn.CellTemplate x:Uid="cl"> <DataTemplate> <dxe:CheckEdit x:Name="dgCheck" IsChecked="False" HorizontalAlignment="Center" Checked="dgCheck_Checked" Unchecked="dgCheck_Unchecked"></dxe:CheckEdit> </DataTemplate> </dxg:GridColumn.CellTemplate> </dxg:GridColumn> <dxg:GridColumn FieldName="Title" Header="标题"/> </dxg:GridControl.Columns> </dxg:GridControl> ## 后台代码 private void GetCheck() { int selectRow = this.dgTaskAllocation.GetSelectedRowHandles()[0]; FrameworkElement objElement = dgTaskAllocation.Columns.GetColumnByFieldName("Check").View.GetRowElementByRowHandle(selectRow); CheckEdit checkEdit = FindVisualChild<CheckEdit>(objElement, "dgCheck"); checkEdit.IsChecked = true; } public static childitem FindVisualChild<childitem>(DependencyObject obj, string name) where childitem : FrameworkElement { if (obj == null) return null; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childitem && ((childitem)child).Name == name) return (childitem)child; else { childitem childOfChild = FindVisualChild<childitem>(child, name); if (childOfChild != null) return childOfChild; } } return null; }
    最新回复(0)