Includes:
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
Trying with Style.Triggers
<
UserControl
>
<
UserControl.Resources
>
<
Style
x:Key
=
"Test"
TargetType
=
"TextBlock"
>
<
Style.Triggers
>
<
DataTrigger
Binding
=
"{Binding Count}"
Value
=
"{x:Null}"
>
<
Setter
Property
=
"Text"
Value
=
"~"
/>
</
DataTrigger
>
</
Style.Triggers
>
</
Style
>
</
UserControl.Resources
>
</
UserControl
>
Trying with DataTemplate.Triggers:
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
TextBlock
x:Name
=
"txtTest"
Text
=
"{Binding Count}"
/>
<
DataTemplate.Triggers
>
<
DataTrigger
Binding
=
"{Binding Count}"
Value
=
"x:Null"
>
<
Setter
TargetName
=
"txtTest"
Property
=
"Text"
Value
=
"~"
/>
</
DataTrigger
>
</
DataTemplate.Triggers
>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
7 Answers, 1 is accepted
The sample below describes the correct approach in this case through TextBlock's Style:
<
telerik:RadGridView
AutoGenerateColumns
=
"False"
x:Name
=
"RadGridView1"
>
<
telerik:RadGridView.Resources
>
<
Style
x:Key
=
"StatusBlock"
TargetType
=
"TextBlock"
>
<!--<The following Setter means that the default Text of the TextBlock element is bound to the property of this object>-->
<
Setter
Property
=
"Text"
Value
=
"{Binding Path=DigitalSignature}"
/>
<
Style.Triggers
>
<
DataTrigger
Binding
=
"{Binding Path=DigitalSignature}"
Value
=
"{x:Null}"
>
<
Setter
Property
=
"TextBlock.Text"
Value
=
"~"
/>
</
DataTrigger
>
</
Style.Triggers
>
</
Style
>
</
telerik:RadGridView.Resources
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
Header
=
"Subject"
DataMemberBinding
=
"{Binding Subject}"
/>
<
telerik:GridViewDataColumn
Header
=
"Sender"
DataMemberBinding
=
"{Binding Sender}"
/>
<
telerik:GridViewDataColumn
Header
=
"Size"
DataMemberBinding
=
"{Binding Size}"
/>
<
telerik:GridViewDataColumn
Header
=
"DigitalSignature"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
TextBlock
Style
=
"{StaticResource StatusBlock}"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
I will be waiting for your response!
Vanya Pavlova
the Telerik team
Considering the fact that this thread is in the forum related to the RadGridView/Silverlight, may you clarify whether you are working with the Silverlight or WPF version of RadGridView?
This code works for the WPF as expected and you may check the attached project. In case of any misunderstanding it could be great if you could share this info with us.
If you are in Silverlight there are many approach you may use, as to create a converter as shown below:
<
telerik:GridViewDataColumn
Header
=
"DigitalSignature"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
TextBlock
Text
=
"{Binding DigitalSignature,Converter={StaticResource con}}"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
Vanya Pavlova
the Telerik team
Hi, I am having trouble with Data template triggers. I want to show images based on values in my collection. Following is my code it is not working as no image displays on column. Can anyone help me please.
<telerik:GridViewDataColumn Header="Status">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<Image Name="Image" Width="15" Height="15" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IconHeader}" Value="N">
<Setter TargetName="Image" Property="Source" Value="/Project;component/images/image.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding IconHeader}" Value="Y">
<Setter TargetName="Image" Property="Source" Value="/Project;component/images/image2.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewDataColumn>
Thank you for the provided code snippet.
I double check this on my side and indeed the DataTriggers are not respected in the CellTemplate. Therefore I have logged feedback item in our Feedback Portal where you can track its progress. As a workaround, you can use Style Triggers instead. Check the following code snippet:
<
telerik:GridViewDataColumn
Header
=
"Status"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
Image
Name
=
"Image"
Width
=
"15"
Height
=
"15"
>
<
Image.Style
>
<
Style
TargetType
=
"Image"
>
<
Style.Triggers
>
<
DataTrigger
Binding
=
"{Binding IconHeader}"
Value
=
"N"
>
<
Setter
Property
=
"Source"
Value
=
"/Cell_Image;component/images/paste.png"
/>
</
DataTrigger
>
<
DataTrigger
Binding
=
"{Binding IconHeader}"
Value
=
"Y"
>
<
Setter
Property
=
"Source"
Value
=
"/Cell_Image;component/images/Shapes.png"
/>
</
DataTrigger
>
</
Style.Triggers
>
</
Style
>
</
Image.Style
>
</
Image
>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
Hope this workaround will for you. I have updated your Telerik Points for bringing this behavior to our attention.
Regards,
Dinko
Progress Telerik