Hello telerik community :o)
First of all, I am sorry for my english, I know this is not perfect, but I break my back to improve it. :)
I am currently working with the telerik Framework in WPF.
Here is the code (I had to change my variables name)
<telerik:RadGridView Name="GridName" IsPropertyChangedAggregationEnabled="True" EnableColumnGroupsVirtualization="True" EnableColumnVirtualization="True" ItemsSource="{Binding PagedSource, ElementName=PagerName}" AutoGenerateColumns="False" IsBusy="{Binding IsLoading}" SelectedItem="{Binding SelectedIsinFromGrid}" Grid.Row="0">
<telerik:RadGridView.Resources>
<Style TargetType="{x:Type telerik:GridViewRow}" BasedOn="{StaticResource {x:Type telerik:GridViewRow}}" >
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="ACTIVE">
<Setter Property="Background" Value="{StaticResource GreenRessourceColor}" />
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="DISABLE">
<Setter Property="Background" Value="{StaticResource RedRessourceColor}" />
</DataTrigger>
<DataTrigger Binding="{Binding Status}" Value="UNKNOW">
<Setter Property="Background" Value="{StaticResource YellowRessourceColor}" />
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadGridView.Resources>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Header1" DataMemberBinding="{Binding Item1}" />
<telerik:GridViewDataColumn Header="Header2" DataMemberBinding="{Binding Item2}"/>
<telerik:GridViewDataColumn Header="Header3" DataMemberBinding="{Binding Item3}"/>
<telerik:GridViewDataColumn Header="Header4" DataMemberBinding="{Binding Status}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<telerik:RadDataPager Name="PagerName" Style="{StaticResource CustomDataPagerStyle}" Grid.Row="1" Source="{Binding ItemsListToDisplay}" PageSize="100" IsTotalItemCountFixed="False" />
The error:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Telerik.Windows.Controls.GridView.GridViewRow', AncestorLevel='1''. BindingExpression:Path=IsPinned; DataItem=null; target element is 'GridViewPinButton' (Name=''); target property is 'IsPinned' (type 'Boolean')
The grid, the pager and the datas are well displayed with the right color, excepte that I have this error inside my VS output.
More information about the usage of this code.
This code is used inside a UserControl, this userControl is wrapped inside a RadPane then it is injected into a RadPaneGroup.
Why am I doing this? Because I am using prism to inject my modules on the fly into the mainRegion as a RadPane
The error occure only when I am moving the pane outside the RadPaneGroup
It is like I messed up with the RadGridView styleRow.
As you can see, I am not using directly the IsPinned property.
Any Idea?
17 Answers, 1 is accepted
I'm unsure about the exact reason why you're getting this binding error but what I can suggest, based on the code you provided, is to use RadGridView's RowStyleSelector property in order to conditionally style its rows and see whether this solves your issue.
Regards,
Dilyan Traykov
Telerik by Progress
I will use the RowStyleSelector, but this is not the probleme, because if I remove my xaml code related to the row color, the binding error is also raised.
I am also using a custom style on my raddatapager to add a dynamic datapager.
<Style x:Key="CustomRadDataPagerStyle" TargetType="{x:Type telerikPresentation:RadDataPager}" basedOn={staticRessource RadDataPagerStyle}>
<Setter Property="Template" Value="{StaticResource RadDataPagerTemplate}"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="{StaticResource RadPager_Background}"/>
<Setter Property="BorderBrush" Value="{StaticResource RadPager_Border}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource RadPager_Foreground}"/>
<Setter Property="NumericButtonStyle" Value="{StaticResource RadPageStyle}"/>
<Setter Property="Height" Value="28"/>
<Setter Property="FontSize" Value="9"/>
</Style>
Do you think that issue can comme from this style? If yes, I do not get why...
I do not believe the aforementioned style is the cause of this binding error. However, without being able to reproduce it at my end, I'm afraid I cannot guide you further in finding a solution.
May I also ask if this binding error is causing any undesired behavior in your application, or if you're just concerned about its origin?
Regards,
Dilyan Traykov
Telerik by Progress
Hello,
We are really concerned about the origin, Imagine that one of our developper is doing the samething on his own code, the console is so flooded by this messages, that we can not see it.
We can not even use the WpfBindingErrors library, because the application throw an exception from the Telerik Library and not directly from our code.
BindingExceptionThrower.Attach();
We all know that binding exceptions are so easy to rise. So that we do not want to have a single one! :)
the error is also raised when I click the next button >> on the raddatapger.
I changed my code to use the StyleSelector, I have the same binding error.
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Telerik.Windows.Controls.GridView.GridViewRow', AncestorLevel='1''. BindingExpression:Path=IsPinned; DataItem=null; target element is 'GridViewPinButton' (Name=''); target property is 'IsPinned' (type 'Boolean')
I'm afraid that I am still unable to reproduce the binding error at my end. I'm attaching the sample project I've used to my reply. Could you please have a look at it and let me know if there's some way I can modify it so that it demonstrates the error?
If you're unable to do so, would it be possible for you to isolate this in a sample project and provide a download link so that I may further assist you with this?
Thank you in advance for your cooperation on the matter.
Regards,
Dilyan Traykov
Telerik by Progress
I added the ddl your project, but the main window remains blanc.
I will try to create a sample project for you.
System.Windows.Data Warning: 4 : Cannot find source for binding with reference 'ElementName=DropDownButtonElement'. BindingExpression:Path=IsChecked; DataItem=null; target element is 'DropDownMenu' (Name='DropDownMenuElement'); target property is 'IsOpen' (type 'Boolean')
All the references come from :
C:\Program Files (x86)\Telerik\UI for WPF Q2 2016\Binaries\WPF45\
C:\Program Files (x86)\Telerik\UI for WPF Q2 2016\Binaries.NoXaml\WPF45\Telerik.Windows.Themes.VisualStudio2013.dll
Any Idea?
Allowed extensions: .gif, .jpg, .jpeg, .png
Please rename the file as .zip instead of gif.
The zip file contains your project, with my modifications and the binding error.
BTW I think you should have a review about your upload security.
Unfortunately, I'm unable to download the file you provided. What I had in mind was for you to upload the project to a cloud storage provider such as Dropbox or Google Drive, for example, and provide a link for download as, currently, only image files can be uploaded to the forums.
Regards,
Dilyan Traykov
Telerik by Progress
I can not upload on a cloud storage.
Add a Dictionnary.xaml to your solution
Inside:
<
ResourceDictionary
xmlns:telerikPresentation
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:controls
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:converter
=
"clr-namespace:XamlParseExceptionIsPinned.Converters"
xmlns:dataPager
=
"clr-namespace:Telerik.Windows.Controls.Data.DataPager;assembly=Telerik.Windows.Controls.Data"
>
<
ResourceDictionary.MergedDictionaries
>
<!-- Telerik.Windows.Controls is used by all assemblies -->
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/System.Windows.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Input.xaml"
/>
<!-- Requires: System.Windows.xaml -->
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Navigation.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Chart.xaml"
/>
<!-- Requires: Telerik.Windows.Controls.Input -->
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Data.xaml"
/>
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.DataVisualization.xaml" />-->
<!-- Requires: Telerik.Windows.Controls.Navigation -->
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Docking.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Expressions.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.GridView.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.RibbonView.xaml"
/>
<
ResourceDictionary
Source
=
"/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Documents.xaml"
/>
</
ResourceDictionary.MergedDictionaries
>
<
converter:DataPagerConverter
x:Key
=
"DataPagerConverter"
/>
<!-- End Brush -->
<!-- Style -->
<
SolidColorBrush
x:Key
=
"RadPagerIndicator"
Color
=
"Black"
/>
<
LinearGradientBrush
x:Key
=
"RadPagerNumericPresenterBorder"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FF494949"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FF9D9D9D"
Offset
=
"1"
/>
</
LinearGradientBrush
>
<
SolidColorBrush
x:Key
=
"RadPagerNumericPresenterBackground"
Color
=
"#FF929292"
/>
<
SolidColorBrush
x:Key
=
"RadPagerSeparator1"
Color
=
"White"
/>
<
SolidColorBrush
x:Key
=
"RadPagerSeparator2"
Color
=
"#FF848484"
/>
<
ControlTemplate
x:Key
=
"DataPagerPresenterTemplate"
TargetType
=
"{x:Type dataPager:DataPagerPresenter}"
>
<
Border
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"{TemplateBinding Background}"
>
<
Grid
HorizontalAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"*"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
</
Grid.ColumnDefinitions
>
<
StackPanel
HorizontalAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
Orientation
=
"Horizontal"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
>
<
controls:RadButton
x:Name
=
"MoveToFirstPageButton"
Command
=
"telerikPresentation:RadDataPagerCommands.MoveToFirstPage"
Height
=
"18"
Margin
=
"2"
Visibility
=
"{Binding PagerControlsVisibility.MoveToFirstPageControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
Width
=
"18"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
Rectangle
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
VerticalAlignment
=
"Center"
Width
=
"1"
/>
<
Path
Data
=
"M0,0 L3.5,3.5 0,7 Z"
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
RenderTransformOrigin
=
"0.5, 0.5"
VerticalAlignment
=
"Center"
Width
=
"4"
>
<
Path.RenderTransform
>
<
TransformGroup
>
<
ScaleTransform
ScaleY
=
"1"
ScaleX
=
"-1"
/>
<
SkewTransform
AngleY
=
"0"
AngleX
=
"0"
/>
<
RotateTransform
Angle
=
"0"
/>
<
TranslateTransform
/>
</
TransformGroup
>
</
Path.RenderTransform
>
</
Path
>
</
StackPanel
>
</
controls:RadButton
>
<
controls:RadButton
x:Name
=
"MoveToPreviousPageButton"
Command
=
"telerikPresentation:RadDataPagerCommands.MoveToPreviousPage"
Height
=
"18"
Margin
=
"2"
Visibility
=
"{Binding PagerControlsVisibility.MoveToPreviousPageControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
Width
=
"18"
>
<
Path
Data
=
"M0,0 L3.5,3.5 0,7 Z"
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
RenderTransformOrigin
=
"0.5, 0.5"
VerticalAlignment
=
"Center"
Width
=
"4"
>
<
Path.RenderTransform
>
<
TransformGroup
>
<
ScaleTransform
ScaleY
=
"1"
ScaleX
=
"-1"
/>
<
SkewTransform
AngleY
=
"0"
AngleX
=
"0"
/>
<
RotateTransform
Angle
=
"0"
/>
<
TranslateTransform
/>
</
TransformGroup
>
</
Path.RenderTransform
>
</
Path
>
</
controls:RadButton
>
<
Border
BorderBrush
=
"{StaticResource RadPagerNumericPresenterBorder}"
BorderThickness
=
"1,0,0,0"
Background
=
"{StaticResource RadPagerNumericPresenterBackground}"
Height
=
"20"
Visibility
=
"{Binding PagerControlsVisibility.NumericElementsControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
VerticalAlignment
=
"Center"
>
<
dataPager:NumericElementsPresenter
AutoEllipsisMode
=
"{TemplateBinding AutoEllipsisMode}"
NumericButtonStyle
=
"{TemplateBinding NumericButtonStyle}"
NumericButtonCount
=
"{TemplateBinding NumericButtonCount}"
PageCount
=
"{TemplateBinding PageCount}"
PageIndex
=
"{TemplateBinding PageIndex}"
/>
</
Border
>
<
controls:RadButton
x:Name
=
"MoveToNextPageButton"
Command
=
"telerikPresentation:RadDataPagerCommands.MoveToNextPage"
Height
=
"18"
Margin
=
"2"
Visibility
=
"{Binding PagerControlsVisibility.MoveToNextPageControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
Width
=
"18"
>
<
Path
Data
=
"M0,0 L3.5,3.5 0,7 Z"
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
VerticalAlignment
=
"Center"
Width
=
"4"
/>
</
controls:RadButton
>
<
controls:RadButton
x:Name
=
"MoveToLastPageButton"
Command
=
"telerikPresentation:RadDataPagerCommands.MoveToLastPage"
Height
=
"18"
Margin
=
"2"
Visibility
=
"{Binding PagerControlsVisibility.MoveToLastPageControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
Width
=
"18"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
Path
Data
=
"M0,0 L3.5,3.5 0,7 Z"
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
VerticalAlignment
=
"Center"
Width
=
"4"
/>
<
Rectangle
Fill
=
"{StaticResource RadPagerIndicator}"
HorizontalAlignment
=
"Center"
Height
=
"7"
VerticalAlignment
=
"Center"
Width
=
"1"
/>
</
StackPanel
>
</
controls:RadButton
>
</
StackPanel
>
<
StackPanel
Grid.Column
=
"1"
Margin
=
"5,0"
Orientation
=
"Horizontal"
Visibility
=
"{Binding PagerControlsVisibility.TextControlVisibility, RelativeSource={RelativeSource TemplatedParent}}"
>
<
telerikPresentation:RadComboBox
ItemsSource
=
"{Binding Converter={StaticResource DataPagerConverter}, Path=ItemCount, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource TemplatedParent}}"
SelectedValue
=
"{Binding PageSize, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
x:Name
=
"radComboBox"
/>
<
Border
Background
=
"{StaticResource RadPagerSeparator1}"
HorizontalAlignment
=
"Left"
Height
=
"18"
Margin
=
"5,0,0,0"
VerticalAlignment
=
"Center"
Width
=
"1"
/>
<
Border
Background
=
"{StaticResource RadPagerSeparator2}"
HorizontalAlignment
=
"Left"
Height
=
"18"
Margin
=
"0,0,10,0"
VerticalAlignment
=
"Center"
Width
=
"1"
/>
<
TextBlock
Margin
=
"2,0"
controls:LocalizationManager.ResourceKey
=
"RadDataPagerPage"
VerticalAlignment
=
"Center"
/>
<
dataPager:DataPagerTextBox
Command
=
"telerikPresentation:RadDataPagerCommands.MoveToPage"
Height
=
"20"
Margin
=
"2,0"
PageIndex
=
"{TemplateBinding PageIndex}"
VerticalAlignment
=
"Center"
Width
=
"48"
/>
<
TextBlock
Margin
=
"2,0"
controls:LocalizationManager.ResourceKey
=
"RadDataPagerOf"
VerticalAlignment
=
"Center"
/>
<
TextBlock
Margin
=
"2,0"
Text
=
"{Binding PageCount, RelativeSource={RelativeSource TemplatedParent}}"
VerticalAlignment
=
"Center"
/>
</
StackPanel
>
</
Grid
>
</
Border
>
</
ControlTemplate
>
<
Style
x:Key
=
"CustomDataPagerPresenterStyle"
TargetType
=
"{x:Type dataPager:DataPagerPresenter}"
BasedOn
=
"{StaticResource DataPagerPresenterStyle}"
>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource DataPagerPresenterTemplate}"
/>
</
Style
>
<
ControlTemplate
x:Key
=
"RadDataPagerTemplate"
TargetType
=
"{x:Type telerikPresentation:RadDataPager}"
>
<
dataPager:DataPagerPresenter
AutoEllipsisMode
=
"{TemplateBinding AutoEllipsisMode}"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"{TemplateBinding Background}"
DisplayMode
=
"{TemplateBinding DisplayMode}"
HorizontalContentAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
ItemCount
=
"{Binding ItemCount, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
NumericButtonStyle
=
"{TemplateBinding NumericButtonStyle}"
NumericButtonCount
=
"{TemplateBinding NumericButtonCount}"
PageCount
=
"{TemplateBinding PageCount}"
PageSize
=
"{Binding PageSize, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
PageIndex
=
"{TemplateBinding PageIndex}"
VerticalContentAlignment
=
"{TemplateBinding VerticalContentAlignment}"
Style
=
"{StaticResource CustomDataPagerPresenterStyle}"
/>
</
ControlTemplate
>
<
LinearGradientBrush
x:Key
=
"RadPager_Background"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFB5B5B5"
/>
<
GradientStop
Color
=
"#FFF0F0F0"
Offset
=
"0.5"
/>
</
LinearGradientBrush
>
<
SolidColorBrush
x:Key
=
"RadPager_Border"
Color
=
"#FF848484"
/>
<
SolidColorBrush
x:Key
=
"RadPager_Foreground"
Color
=
"Black"
/>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_TopShadow"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#66000000"
Offset
=
"0"
/>
<
GradientStop
Offset
=
"0.3"
/>
</
LinearGradientBrush
>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_Over"
EndPoint
=
"0.5,0.99"
StartPoint
=
"0.5,0.01"
>
<
GradientStop
Color
=
"#FFFFFBB7"
Offset
=
"0.216"
/>
<
GradientStop
Color
=
"#FFBDBDBD"
/>
</
LinearGradientBrush
>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_Checked"
EndPoint
=
"0.5,0.99"
StartPoint
=
"0.5,0.01"
>
<
GradientStop
Color
=
"#FFFFDB7B"
Offset
=
"0.5"
/>
<
GradientStop
Color
=
"#FFC58124"
/>
</
LinearGradientBrush
>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_Disabled"
EndPoint
=
"0.5,0.99"
StartPoint
=
"0.5,0.01"
>
<
GradientStop
Color
=
"#FFD8D8D8"
Offset
=
"0.216"
/>
<
GradientStop
Color
=
"#FFBDBDBD"
/>
</
LinearGradientBrush
>
<
ControlTemplate
x:Key
=
"RadPageTemplate"
TargetType
=
"{x:Type controls:RadRadioButton}"
>
<
Border
x:Name
=
"PageButton"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"{TemplateBinding Background}"
CornerRadius
=
"0,0,6,1"
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"CommonStates"
>
<
VisualState
x:Name
=
"Normal"
/>
<
VisualState
x:Name
=
"MouseOver"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"0"
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"PageButton"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
Value
=
"{StaticResource RadPager_Page_Over}"
/>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Pressed"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"0"
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"PageButton"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
Value
=
"{StaticResource RadPager_Page_Checked}"
/>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Disabled"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"0"
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"PageButton"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
Value
=
"{StaticResource RadPager_Page_Disabled}"
/>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Checked"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"0"
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"PageButton"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
Value
=
"{StaticResource RadPager_Page_Checked}"
/>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"FocuseStatesGroup"
>
<
VisualState
x:Name
=
"Unfocused"
/>
<
VisualState
x:Name
=
"Focused"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"0"
Storyboard.TargetProperty
=
"Background"
Storyboard.TargetName
=
"PageButton"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
Value
=
"{StaticResource RadPager_Page_Over}"
/>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
Border
Background
=
"{StaticResource RadPager_Page_TopShadow}"
>
<
ContentControl
Content
=
"{TemplateBinding Content}"
HorizontalAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
IsTabStop
=
"False"
Margin
=
"{TemplateBinding Padding}"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
/>
</
Border
>
</
Border
>
</
ControlTemplate
>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_Background"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"White"
Offset
=
"0.216"
/>
<
GradientStop
Color
=
"#FFBDBDBD"
/>
</
LinearGradientBrush
>
<
LinearGradientBrush
x:Key
=
"RadPager_Page_Border"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FF494949"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FF9D9D9D"
Offset
=
"1"
/>
</
LinearGradientBrush
>
<
Style
x:Key
=
"RadPageStyle"
TargetType
=
"{x:Type controls:RadRadioButton}"
>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource RadPageTemplate}"
/>
<
Setter
Property
=
"Background"
Value
=
"{StaticResource RadPager_Page_Background}"
/>
<
Setter
Property
=
"BorderBrush"
Value
=
"{StaticResource RadPager_Page_Border}"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"0,0,1,1"
/>
<
Setter
Property
=
"MinWidth"
Value
=
"21"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Center"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Center"
/>
<
Setter
Property
=
"Padding"
Value
=
"0"
/>
</
Style
>
<
Style
x:Key
=
"CustomRadDataPagerStyle"
TargetType
=
"{x:Type telerikPresentation:RadDataPager}"
BasedOn
=
"{StaticResource RadDataPagerStyle}"
>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource RadDataPagerTemplate}"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Center"
/>
<
Setter
Property
=
"Background"
Value
=
"{StaticResource RadPager_Background}"
/>
<
Setter
Property
=
"BorderBrush"
Value
=
"{StaticResource RadPager_Border}"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"1"
/>
<
Setter
Property
=
"Foreground"
Value
=
"{StaticResource RadPager_Foreground}"
/>
<
Setter
Property
=
"NumericButtonStyle"
Value
=
"{StaticResource RadPageStyle}"
/>
<
Setter
Property
=
"Height"
Value
=
"28"
/>
<
Setter
Property
=
"FontSize"
Value
=
"9"
/>
</
Style
>
</
ResourceDictionary
>
Add Folder Converters inside the solution.Then inside this folder add a new Class as follow:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
namespace
XamlParseExceptionIsPinned.Converters
{
using
System.Windows.Data;
public
class
DataPagerConverter : IValueConverter
{
private
const
int
PAGERSIZE = 10;
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
var result =
new
List<
int
>();
var totalItem = (
int
)value;
if
(totalItem <= 0)
{
return
0;
}
for
(var i = 0; i <= totalItem; ++i)
{
if
((i % PAGERSIZE) == 0 && i > 0)
{
result.Add(i);
}
}
return
result;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
return
value;
}
}
}
Then change your GridViewUserControl.xaml as follow:
<
UserControl
x:Class
=
"XamlParseExceptionIsPinned.GridViewUserControl"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable
=
"d"
d:DesignHeight
=
"300"
d:DesignWidth
=
"300"
>
<
Grid
>
<
Grid.Resources
>
<
ResourceDictionary
>
<
ResourceDictionary.MergedDictionaries
>
<
ResourceDictionary
Source
=
"/XamlParseExceptionIsPinned;component/Dictionary.xaml"
/>
</
ResourceDictionary.MergedDictionaries
>
</
ResourceDictionary
>
</
Grid.Resources
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"*"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
Grid.RowDefinitions
>
<
telerik:RadGridView
x:Name
=
"clubsGrid"
ItemsSource
=
"{Binding PagedSource, ElementName=PagerName}"
IsPropertyChangedAggregationEnabled
=
"True"
EnableColumnGroupsVirtualization
=
"True"
EnableColumnVirtualization
=
"True"
AutoGenerateColumns
=
"False"
SelectedItem
=
"{Binding SelectedItem}"
Grid.Row
=
"0"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
ShowDistinctFilters
=
"False"
DataMemberBinding
=
"{Binding Name}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Established}"
Header
=
"Est."
DataFormatString
=
"{}{0:yyyy}"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StadiumCapacity}"
Header
=
"Stadium"
DataFormatString
=
"{}{0:N0}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
<
telerik:RadDataPager
Style
=
"{StaticResource CustomRadDataPagerStyle}"
Name
=
"PagerName"
Grid.Row
=
"1"
Source
=
"{Binding Clubs}"
PageSize
=
"10"
IsTotalItemCountFixed
=
"False"
/>
</
Grid
>
</
UserControl
>
I am not a telerik expert, but I think I just found something in the Teleril.Windows.Controls.GridView.Xaml
What about the RelativeSource AncestorType={x:Type grid:GridViewRow} ? it looks like the AncestorType is lost during the tab drag&drop.
<
Style
x:Key
=
"GridViewPinButtonStyle"
TargetType
=
"grid:GridViewPinButton"
>
<
Setter
Property
=
"PathStyle"
Value
=
"{StaticResource UnpinnedButtonStyle}"
/>
<
Setter
Property
=
"PathGeometry"
Value
=
"M4,2 L4,3 L8,3 L8,2 z M3,0 L4,0 L4,1 L8,1 L9,1 L9,2 L9,3 L9,6 L8,6 L4,6 L4,7 L3,7 L3,6 L3,4 L0,4 L0,3 L3,3 L3,2 L3,1 z"
/>
<
Setter
Property
=
"MinHeight"
Value
=
"20"
/>
<
Setter
Property
=
"MinWidth"
Value
=
"23"
/>
<
Setter
Property
=
"IsBackgroundVisible"
Value
=
"False"
/>
<
Setter
Property
=
"Command"
Value
=
"{x:Static telerik:RadGridViewCommands.TogglePinnedRowState}"
/>
<
Setter
Property
=
"CommandParameter"
Value
=
"{Binding}"
/>
<
Setter
Property
=
"IsPinned"
Value
=
"{Binding IsPinned, RelativeSource={RelativeSource AncestorType={x:Type grid:GridViewRow}}}"
/>
<
Setter
Property
=
"SnapsToDevicePixels"
Value
=
"True"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"1"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"FocusVisualStyle"
Value
=
"{x:Null}"
/>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"Padding"
Value
=
"0"
/>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerik:RadPathButton"
>
<
Grid
Background
=
"Transparent"
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"BackgroundVisibility"
>
<
VisualState
x:Name
=
"BackgroundIsHidden"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetName
=
"OuterBorder"
Storyboard.TargetProperty
=
"Visibility"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"BackgroundIsVisible"
/>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
Border
x:Name
=
"OuterBorder"
BorderThickness
=
"{TemplateBinding BorderThickness}"
BorderBrush
=
"{TemplateBinding BorderBrush}"
Background
=
"{TemplateBinding Background}"
CornerRadius
=
"{TemplateBinding CornerRadius}"
/>
<
Grid
Margin
=
"{TemplateBinding Padding}"
>
<
Path
x:Name
=
"Path"
Style
=
"{TemplateBinding PathStyle}"
Data
=
"{TemplateBinding PathGeometry}"
SnapsToDevicePixels
=
"{TemplateBinding SnapsToDevicePixels}"
/>
</
Grid
>
</
Grid
>
<
ControlTemplate.Triggers
>
<
DataTrigger
Binding
=
"{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type grid:GridViewRow}}}"
Value
=
"True"
>
<
Setter
TargetName
=
"Path"
Property
=
"Fill"
Value
=
"{telerik:VisualStudio2013Resource ResourceKey=SelectedBrush}"
/>
</
DataTrigger
>
</
ControlTemplate.Triggers
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
<
Style.Triggers
>
<
Trigger
Property
=
"IsPinned"
Value
=
"True"
>
<
Setter
Property
=
"PathGeometry"
Value
=
"M2,1L2,5L3,5L3,1zM3,0L6,0L6,1L6,5L7,5L7,6L4,6L4,9L3,9L3,6L2,6L1,6L0,6L0,5L1,5L1,1L1,1e-006L2,1e-006z"
/>
<
Setter
Property
=
"PathStyle"
Value
=
"{StaticResource PinnedButtonStyle}"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>
I was able to successfully reproduce the error at my end and have thus logged a new bug report in our feedback portal to which you can subscribe in order to get notified about any changes in its status. As a gratitude for your help, I've awarded you with some Telerik points.
For the time being, you can set your RadGridView's GroupRenderMode to Flat in order to avoid these binding errors.
Regards,
Dilyan Traykov
Telerik by Progress