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);
}
}
}
//DataErrorValidationRule
public
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 property
public
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
>
</Control
Template
>
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