or
<Style x:Key="SplineLabelStyle" TargetType="charting:SeriesItemLabel"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="charting:SeriesItemLabel"> <Canvas> <Border x:Name="PART_TextContainer"> <Image x:Name="PART_Image" Source="{Binding DataItem.WeatherImageSource}" /> </Border> </Canvas> </ControlTemplate> </Setter.Value> </Setter></Style><Style x:Key="SplineLabelStyle" TargetType="charting:SeriesItemLabel"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="charting:SeriesItemLabel"> <Canvas> <Border x:Name="PART_TextContainer"> <Image x:Name="PART_Image" Source="{Binding DataItem.WeatherImageSource}" ToolTip="{Binding DataItem.WeatherConditions}" /> </Border> </Canvas> </ControlTemplate> </Setter.Value> </Setter></Style>How can I define tooltips for custom item labels?
Alternatively, how can I customize the PointMarkItemStyle to display custom icons (and then I can use the default item tooltip provided).
Kind regards,
Dave.
doc.Selection.Clear(); DocumentTextSearch search = new DocumentTextSearch(doc); var rangesTrackingDocumentChanges = new List<TextRange>(); var resultRanges = search.FindAll(searchText); foreach (var textRange in resultRanges) { TextRange newRange = new TextRange(new DocumentPosition(textRange.StartPosition, true), new DocumentPosition(textRange.EndPosition, true)); rangesTrackingDocumentChanges.Add(newRange); } foreach (var textRange in rangesTrackingDocumentChanges) { doc.CaretPosition.MoveToPosition(textRange.StartPosition); doc.DeleteRange(textRange.StartPosition, textRange.EndPosition); doc.Insert(mergeText, new Telerik.Windows.Documents.Model.Styles.StyleDefinition()); textRange.StartPosition.Dispose(); textRange.EndPosition.Dispose(); }"<t:RadDocument xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:t=\"clr-namespace:Telerik.Windows.Documents.Model;assembly=Telerik.Windows.Documents\" xmlns:s=\"clr-namespace:Telerik.Windows.Documents.Model.Styles;assembly=Telerik.Windows.Documents\" version=\"1.2\" LayoutMode=\"Flow\" LineSpacing=\"1.14999997615814\" LineSpacingType=\"Auto\" ParagraphDefaultSpacingAfter=\"12\" ParagraphDefaultSpacingBefore=\"0\" SectionDefaultPageSize=\"816,1056\" StyleName=\"defaultDocumentStyle\">\r\n <t:RadDocument.ProtectionSettings>\r\n <t:DocumentProtectionSettings EnableDocumentProtection=\"False\" Enforce=\"False\" HashingAlgorithm=\"None\" HashingSpinCount=\"0\" ProtectionMode=\"ReadOnly\" />\r\n </t:RadDocument.ProtectionSettings>\r\n <t:RadDocument.Styles>\r\n <s:StyleDefinition DisplayName=\"Document Default Style\" IsCustom=\"False\" IsDefault=\"False\" IsPrimary=\"True\" Name=\"defaultDocumentStyle\" Type=\"Default\">\r\n <s:StyleDefinition.ParagraphStyle>\r\n <s:ParagraphProperties LineSpacing=\"1.14999997615814\" SpacingAfter=\"12\" />\r\n </s:StyleDefinition.ParagraphStyle>\r\n <s:StyleDefinition.SpanStyle>\r\n <s:SpanProperties FontFamily=\"Verdana\" FontSize=\"16\" FontStyle=\"Normal\" FontWeight=\"Normal\" />\r\n </s:StyleDefinition.SpanStyle>\r\n </s:StyleDefinition>\r\n <s:StyleDefinition BasedOnName=\"TableNormal\" DisplayName=\"TableGrid\" IsCustom=\"False\" IsDefault=\"False\" IsPrimary=\"True\" Name=\"TableGrid\" Type=\"Table\">\r\n <s:StyleDefinition.ParagraphStyle>\r\n <s:ParagraphProperties LineSpacing=\"1\" SpacingAfter=\"0\" />\r\n </s:StyleDefinition.ParagraphStyle>\r\n <s:StyleDefinition.TableStyle>\r\n <s:TableProperties Borders=\"1,Single,#FF000000\" />\r\n </s:StyleDefinition.TableStyle>\r\n </s:StyleDefinition>\r\n <s:StyleDefinition DisplayName=\"TableNormal\" IsCustom=\"False\" IsDefault=\"True\" IsPrimary=\"True\" Name=\"TableNormal\" Type=\"Table\" />\r\n </t:RadDocument.Styles>\r\n <t:Section>\r\n <t:Paragraph TextAlignment=\"Left\">\r\n <t:Paragraph.TabStops>\r\n <t:TabStop Position=\"208\" TabStopType=\"Left\" />\r\n </t:Paragraph.TabStops>\r\n </t:Paragraph>\r\n <t:Paragraph TextAlignment=\"Left\">\r\n <t:Paragraph.TabStops>\r\n <t:TabStop Position=\"208\" TabStopType=\"Left\" />\r\n </t:Paragraph.TabStops>\r\n <t:Span Text=\"{}{ MERGEFIELD TmDate } { MERGEFIELD TmLeft }{ MERGEFIELD TmRight }\" />\r\n </t:Paragraph>\r\n <t:Paragraph TextAlignment=\"Left\">\r\n <t:Paragraph.TabStops>\r\n <t:TabStop Position=\"208\" TabStopType=\"Left\" />\r\n </t:Paragraph.TabStops>\r\n </t:Paragraph>\r\n <t:Table GridColumnWidthsSerializationInfo=\"\" LayoutMode=\"AutoFit\" PreferredWidth=\"Auto\" StyleName=\"TableGrid\" TableIndent=\"0\">\r\n <t:TableRow>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph>\r\n <t:Span Text=\" { MERGEFIELD TmHeader } \" />\r\n </t:Paragraph>\r\n </t:TableCell>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph />\r\n </t:TableCell>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph />\r\n </t:TableCell>\r\n </t:TableRow>\r\n <t:TableRow>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph />\r\n </t:TableCell>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph />\r\n </t:TableCell>\r\n <t:TableCell ColumnSpan=\"1\" RowSpan=\"1\">\r\n <t:Paragraph />\r\n </t:TableCell>\r\n </t:TableRow>\r\n </t:Table>\r\n <t:Paragraph TextAlignment=\"Left\">\r\n <t:Paragraph.TabStops>\r\n <t:TabStop Position=\"208\" TabStopType=\"Left\" />\r\n </t:Paragraph.TabStops>\r\n </t:Paragraph>\r\n </t:Section>\r\n</t:RadDocument>"<telerik:ColumnDefinition MemberBinding="{Binding End , StringFormat={}{0:d}}" Header="End" ColumnWidth="100" > <telerik:ColumnDefinition.CellEditTemplate> <DataTemplate> <telerik:RadDatePicker SelectedValue="{Binding End,Mode=TwoWay}" /> </DataTemplate> </telerik:ColumnDefinition.CellEditTemplate> </telerik:ColumnDefinition>public String End_str { get { return base.End.ToString("yyyy-MM-dd"); } }telerik:RadComboBox x:Name="comboCounties" Grid.Row="4" Grid.Column="1" MinWidth="200" IsEditable="True" IsReadOnly="True" StaysOpenOnEdit="True" EmptyText="Please select a county" SelectedIndex="-1" DisplayMemberPath="County" SelectedValuePath="ID" Margin="5" Style="{StaticResource ComboBoxErrorToolTip}"> <telerik:RadComboBox.SelectedValue> <Binding Path="CountyID" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"> <Binding.ValidationRules> <DataErrorValidationRule></DataErrorValidationRule> </Binding.ValidationRules> </Binding> </telerik:RadComboBox.SelectedValue> </telerik:RadComboBox>private void GetErrors(StringBuilder sb, DependencyObject obj){ foreach (object child in LogicalTreeHelper.GetChildren(obj)) { if (child is TextBox) { TextBox element = child as TextBox; if (element == null) continue; if (Validation.GetHasError(element)) { sb.Append(element.Text + "Missing detail:\r\n"); foreach (ValidationError error in Validation.GetErrors(element)) { sb.Append(error.ErrorContent.ToString()); sb.Append("\r\r"); } } //Check the children of this object for errors GetErrors(sb, element); } if (child is RadComboBox) { RadComboBox element = child as RadComboBox; if (element == null) continue; if (Validation.GetHasError(element)) { sb.Append("Missing detail:\r\n"); foreach (ValidationError error in Validation.GetErrors(element)) { sb.Append(error.ErrorContent.ToString()); sb.Append("\r\r"); } } //Check the children of this object for errors GetErrors(sb, element); } }}//DataErrorValidationRulepublic string this[string propertyName]{ get { if (propertyName == "Address1") { if (string.IsNullOrEmpty(Address1)) { return "Line 1 is required."; } } if (propertyName == "Postcode") { if (string.IsNullOrEmpty(Postcode)) { return "Postcode is required."; } } if (propertyName == "CountyID") { if (CountyID <= 0) { return "County is required."; } } return null; }}//WPF Doesn't use this propertypublic string Error{ get { return null; }}Q1 2012
I have a RadGridView that I am binding to a DataTable. The DataTable is dynamically generated in code. In the first column of the DataTable there is an object. I have an event attached to the RowLoaded event. In the RowLoaded event I want to set the template of the first cell to a Resource Template. This is the code I am using but the cell is always empty.
XAML Template
<ControlTemplate x:Key="FluidEditorTemplate"> <shared:PopupButton PopupHorizontalOffset="0" HorizontalContentAlignment="Left" BorderThickness="0" BorderBrush="Transparent" PopupContent="{Binding}" Foreground="Black" FontWeight="Bold" VerticalContentAlignment="Center" Margin="0,0,10,0" Background="Transparent" IsRounded="True" Grid.Column="1" Grid.Row="1" DisplayMode="Merged" > <shared:PopupButton.PopupContentTemplate> <DataTemplate> <StackPanel Background="DarkGray" > <Button ToolTip="Cancel" Tag="{Binding}" Style="{DynamicResource GreenGlassButtonStyle}" Margin="2" Height="24" Width="110" Foreground="White" Content="Cancel" HorizontalAlignment="Right" /> <Button ToolTip="Modify" Tag="{Binding}" Style="{DynamicResource RedGlassButtonStyle}" Margin="2" Height="24" Width="110" Foreground="White" Content="Modify" HorizontalAlignment="Right" /> <Button ToolTip="Stop" Tag="{Binding}" Style="{DynamicResource RedGlassButtonStyle}" Margin="2" Height="24" Width="110" Foreground="White" Content="Stop" HorizontalAlignment="Right" /> </StackPanel> </DataTemplate> </shared:PopupButton.PopupContentTemplate> </shared:PopupButton> </ControlTemplate>XAML GridView
<telerik:RadGridView RowLoaded="FluidsGridRowLoaded"Grid.Row="1" AutoGenerateColumns="True" ItemsSource="{Binding FluidsDataSource}" ShowGroupPanel="False" RowIndicatorVisibility="Collapsed" />Code
private void FluidsGridRowLoaded(object sender, RowLoadedEventArgs e){ if (!DesignerProperties.GetIsInDesignMode(this)) { if (e.Row.Cells.Count > 0) e.Row.Cells[0].Template = Application.Current.Resources["FluidEditorTemplate"] as ControlTemplate; }}
Thanks,
Billy Jacobs