Hello,
I am using CellTemplateSelector to change the color of a cell depending on its value. I found sample code on how to do this and it works well for GridViewDataColumn but I can't get it to work with GridViewExpressionColumn
I'm using the following and it works:
<telerik:GridViewDataColumn DataMemberBinding= "{Binding TotalAdjRateNew}" TextAlignment="Right" Width="100" DataFormatString="{} {0:#%}" IsReadOnly="True">
<telerik:GridViewDataColumn.Header>
<TextBlock Text="New Total Adj %" TextWrapping="NoWrap" TextAlignment="Center" />
</telerik:GridViewDataColumn.Header>
<telerik:GridViewDataColumn.CellTemplateSelector>
<telerik:ConditionalDataTemplateSelector>
<telerik:DataTemplateRule Condition="TotalAdjRateNew < 0">
<DataTemplate>
<TextBlock Text="{Binding TotalAdjRateNew, StringFormat=p0}"
HorizontalAlignment="Right" Foreground="Red"/>
</DataTemplate>
</telerik:DataTemplateRule>
</telerik:ConditionalDataTemplateSelector>
</telerik:GridViewDataColumn.CellTemplateSelector>
</telerik:GridViewDataColumn>
However when I use the code below with a GridViewExpressionColumn the value is not displaying. I am not sure what the binding should be inside the DataTemplateRule.
<telerik:GridViewExpressionColumn UniqueName="TotalAdjPCT" TextAlignment="Right" Width="100"
DataFormatString="{} {0:#%}" Expression="MAN_ADJ_PCT + MOD_ADJ_PCT" IsReadOnly="True">
<telerik:GridViewExpressionColumn.Header>
<TextBlock Text="Total Adj %" TextWrapping="NoWrap" TextAlignment="Center" />
</telerik:GridViewExpressionColumn.Header>
<telerik:GridViewExpressionColumn.CellTemplateSelector>
<telerik:ConditionalDataTemplateSelector>
<telerik:DataTemplateRule Condition="MAN_ADJ_PCT + MOD_ADJ_PCT < 0">
<DataTemplate>
<TextBlock Text="{Binding TotalAdjPCT, StringFormat=p0}" HorizontalAlignment="Right"
Foreground="Red"/>
</DataTemplate>
</telerik:DataTemplateRule>
</telerik:ConditionalDataTemplateSelector>
</telerik:GridViewExpressionColumn.CellTemplateSelector>
</telerik:GridViewExpressionColumn>
<telerik:RadScheduleView Name="_scheduleView" AppointmentsSource="{Binding Appointments}" Grid.Row="5" Grid.ColumnSpan="2" CurrentDate="2012-10-01" NavigationHeaderVisibility="Collapsed" MinAppointmentWidth="10" MinAppointmentHeight="5" ShowDialog="RadScheduleView_ShowDialog" ToolTipTemplate="{StaticResource AppointmentToolTipTemplate}" telerik:StyleManager.Theme="Metro"> <telerik:RadScheduleView.ViewDefinitions> <telerik:WeekViewDefinition FirstDayOfWeek="Monday" WeekGroupHeaderStringFormat="{}{0:dddd(MM/dd/yy)}"> </telerik:WeekViewDefinition> </telerik:RadScheduleView.ViewDefinitions> </telerik:RadScheduleView>private void playersGrid_AddingNewDataItem(object sender, Telerik.Windows.Controls.GridView.GridViewAddingNewEventArgs e)
{ e.NewObject = new Player(); } private void playersGrid_RowEditEnded(object sender, Telerik.Windows.Controls.GridViewRowEditEndedEventArgs e) { if (e.EditAction == GridViewEditAction.Cancel) { return; } if ( e.EditAction == GridViewEditAction.Commit) { this.playersGrid.CurrentColumn = this.playersGrid.Columns.OfType<GridViewColumn>().First(); this.playersGrid.BeginInsert(); } }