This is a migrated thread and some comments may be shown as answers.

problem while Changing Cell backcolor

0 Answers 69 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Pallavi
Top achievements
Rank 1
Pallavi asked on 14 Jan 2014, 12:21 PM
Hi Support,

I have Radgrid, in loaded event of gridrow i change the backcolor of cell according to certain conditions. My problem is when the color is changed the cell border was crossed by changed color. that means i am not able to see border color after cell background change.
here is the XAML for grid.
<UiLib:PersistableBaseGrid RowIndicatorVisibility="Collapsed" RowLoaded="GrdTimeRecording_OnRowLoaded"  GridLinesVisibility="Both" x:Name="grdTimeRecording" ShowGroupPanel="False"  IsReadOnlyBinding="{Binding Path=IsLastRow}" Deleting="GrdTimeRecording_OnDeleting" Grid.Row="1" KeyDown="GrdTimeRecording_OnKeyDown" AutoGenerateColumns="False" UserSettingsGroup="TabularTimeRecordingDialog" UserSettingsKey="TabularTimeRecordingGrid">
                <telerik:RadGridView.ColumnGroups>
                    <telerik:GridViewColumnGroup HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"  Name="Monday"
 Header="Mon" />
                    <telerik:GridViewColumnGroup  HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}" Name="Tuesday"
 Header="Tue" />
                    <telerik:GridViewColumnGroup  Name="Wednesday" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Wed" />
                    <telerik:GridViewColumnGroup  Name="Thursday" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Thu" />
                    <telerik:GridViewColumnGroup  Name="Friday" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Fri" />
                    <telerik:GridViewColumnGroup  Name="Saturday" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Sat" />
                    <telerik:GridViewColumnGroup  Name="Sunday" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Sun" />
                    <telerik:GridViewColumnGroup  Name="Project" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="" />
                    <telerik:GridViewColumnGroup  Name="Sum" HeaderStyle="{DynamicResource TelerikCommonColumnHeaderStyle}"
 Header="Sum" />
                </telerik:RadGridView.ColumnGroups>
                <telerik:RadGridView.Columns>

                    <telerik:GridViewDataColumn Header=""  ContextMenu="{DynamicResource ContextMenuForPerformances}" ColumnGroupName="Project" Background="{DynamicResource ControlBackgroundLightBrush}"  ContextMenuOpening="ContextMenuForProject_OnContextMenuOpening">
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd"  Background="{DynamicResource ControlBackgroundLightBrush}">
                                        <!--<Grid.Background>
                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                            <GradientStop Color="#FFC8D2D7" Offset="0" />
                                            <GradientStop Color="#FFE1EBF0" Offset="1" />
                                        </LinearGradientBrush>
                                    </Grid.Background>-->
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Image Source="{Binding Path=projectId,Converter={StaticResource ProjectIconConverter}}"  Grid.Column="0" Margin="3" ></Image>
                                        <TextBlock x:Name="projectId" Visibility="Visible" Grid.Column="1" Text="{Binding Path=ID}"></TextBlock>
                                        <TextBlock VerticalAlignment="Center"   Grid.Column="2" Tag="TabularZE" ContextMenu="{DynamicResource ContextMenuForProjects}" Text="{Binding Path=projectId,Converter={StaticResource ProjectTitleConverter},ConverterParameter=RootNodeAsSum}" x:Name="txtProject" HorizontalAlignment="Stretch" TextBlock.TextAlignment="Left" TextWrapping="NoWrap" TextTrimming="WordEllipsis" />
                                    </Grid>
                                </Border>
                                <DataTemplate.Triggers>
                                    <DataTrigger Binding="{Binding Path=projectId}" Value="0">
                                        <Setter TargetName="txtProject" Property="Text" Value="Summe"/>
                                        <!--<Setter.Value>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="#FFC8D2D7" Offset="0" />
                                                    <GradientStop Color="#FFE1EBF0" Offset="1" />
                                                </LinearGradientBrush>
                                                </Setter.Value>-->
                                    </DataTrigger>
                                </DataTemplate.Triggers>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Monday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                          <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" TextAlignment="Right" Text="{Binding Path=MondayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  KeyDown="TxtStd_OnKeyDown" Text="{Binding Path=MondayStd,StringFormat=N}" ContextMenuOpening="ContextMenuForPerformances_OnContextMenuOpening" ContextMenu="{DynamicResource ContextMenuForPerformances}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Monday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="30"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd"  Text="{Binding Path=MondayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Tuesday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=TuesdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=TuesdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Tuesday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=TuesdayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Wednesday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=WednesdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=WednesdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Wednesday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=WednesdayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Thursday"  >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=ThursdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=ThursdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Thursday" IsReadOnly="True">
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=ThursdayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>


                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Friday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=FridayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=FridayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Friday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=FridayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>


                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Saturday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=SaturdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=SaturdayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Saturday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=SaturdayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewDataColumn Header="Std" ColumnGroupName="Sunday" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=SundayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                        <telerik:GridViewDataColumn.CellEditTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBox x:Name="txtStd"  Text="{Binding Path=SundayStd,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellEditTemplate>
                    </telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Header="(LB)" ColumnGroupName="Sunday" IsReadOnly="True" >
                        <telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate>
                                <Border x:Name="border">
                                    <Grid x:Name="grd" >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="txtStd" Text="{Binding Path=SundayLB,StringFormat=N}"/>
                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>
                    </telerik:GridViewDataColumn>

                    <telerik:GridViewColumn Header="Sum" ColumnGroupName="Sum" IsReadOnly="True">
                        <telerik:GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Border BorderThickness="0">
                                    <TextBlock x:Name="txtSummeCol" TextAlignment="Right" Text="{Binding Path=Sum,StringFormat=N}" HorizontalAlignment="Stretch"  Padding="3" Margin="0,0,0,-1" VerticalAlignment="Stretch" ></TextBlock>
                                </Border>
                            </DataTemplate>
                        </telerik:GridViewColumn.CellTemplate>
                    </telerik:GridViewColumn>


                </telerik:RadGridView.Columns>
            </UiLib:PersistableBaseGrid>

and row loading event.
private void GrdTimeRecording_OnRowLoaded(object sender, RowLoadedEventArgs e)
        {
            var rowindex = grdTimeRecording.ItemContainerGenerator.IndexFromContainer(e.Row);
            var columnIndex = 1;
           
            for (var date = FirstDate; date <= FirstDate.AddDays(6); date = date.AddDays(1))
            {
                if (rowindex >= 0 && columnIndex < grdTimeRecording.Columns.Count - 1)
                {
                    var currentCell = e.Row.Cells[columnIndex];
                    var border = UILib.GetVisualChild<Border>(currentCell);
                    if (border != null)
                    {
                        
                        border.Background = ValidateForErrors(date, columnIndex % 2 == 0);
                    }
                    columnIndex++;
                }
                //else if (rowindex == grdTimeRecording.Items.Count - 1)
                //{
                //    e.Row.Background =(Brush) Application.Current.Resources["ControlBackgroundLightBrush"];
                //}
                else if(rowindex == -1 || columnIndex == grdTimeRecording.Columns.Count -1)
                    break;
            }
        }

No answers yet. Maybe you can help?

Tags
GridView
Asked by
Pallavi
Top achievements
Rank 1
Share this question
or