Telerik RadGridView + Style + RadDataPager = Cannot find source for binding IsPinned

18 posts, 0 answers
  1. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 27 Sep Link to this post

    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?

  2. UI for WPF is Visual Studio 2017 Ready
  3. Dilyan Traykov
    Admin
    Dilyan Traykov avatar
    371 posts

    Posted 29 Sep Link to this post

    Hello Mathieu,

    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
    Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
  4. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    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...

  5. Dilyan Traykov
    Admin
    Dilyan Traykov avatar
    371 posts

    Posted 29 Sep Link to this post

    Hello Mathieu,

    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
    Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
  6. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    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! :)

  7. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    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')
  8. Dilyan Traykov
    Admin
    Dilyan Traykov avatar
    371 posts

    Posted 29 Sep Link to this post

    Hello Mathieu,

    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
    Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
  9. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep in reply to Dilyan Traykov Link to this post

    I added the ddl your project, but the main window remains blanc.

     

    I will try to create a sample project for you.

  10. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep in reply to Mathieu Link to this post

    Sorry do not take this message into account.
  11. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    If I move the tab and put it back into the mainWindow I have this error:
    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')
  12. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep in reply to Mathieu Link to this post

    All the references come from :

    C:\Program Files (x86)\Telerik\UI for WPF Q2 2016\Binaries\WPF45\
    The style dll from:

    C:\Program Files (x86)\Telerik\UI for WPF Q2 2016\Binaries.NoXaml\WPF45\Telerik.Windows.Themes.VisualStudio2013.dll

    Any Idea?

  13. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    How can I add a zip?
    Allowed extensions: .gif, .jpg, .jpeg, .png
  14. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep in reply to Mathieu Link to this post

    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.

  15. Dilyan Traykov
    Admin
    Dilyan Traykov avatar
    371 posts

    Posted 29 Sep Link to this post

    Hello Mathieu,

    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
    Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
  16. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep in reply to Dilyan Traykov Link to this post

    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:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                 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>

  17. Mathieu
    Mathieu avatar
    12 posts
    Member since:
    May 2014

    Posted 29 Sep Link to this post

    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>

  18. Dilyan Traykov
    Admin
    Dilyan Traykov avatar
    371 posts

    Posted 29 Sep Link to this post

    Hello Mathieu,

    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
    Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
Back to Top
UI for WPF is Visual Studio 2017 Ready