Bonjour communauté SO: o)Telerik RadGridView + style + RadDataPager = ne peut pas trouver la source pour la liaison IsPinned
Tout d'abord, je suis désolé pour mon anglais, je sais que ce n'est pas parfait, mais je casse mon dos l'améliorer. :)
Je travaille actuellement avec le framework telerik dans WPF.
Voici le code (je devais changer mon nom de variables)
<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" />
L'erreur:
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')
La grille, le téléavertisseur et les données sont bien affichées avec la bonne couleur, excepte que j'ai cette erreur dans ma sortie VS.
Plus d'informations sur l'utilisation de ce code.
Ce code est utilisé à l'intérieur d'un UserControl, ce userControl est enveloppé dans un RadPane puis injecté dans un RadPaneGroup.
Pourquoi est-ce que je fais cela? Parce que je suis en utilisant un prisme pour injecter mes modules à la volée dans le mainRegion comme RadPane
L'erreur occure que lorsque je me déplace le volet extérieur de la RadPaneGroup
Il est comme je l'ai foiré avec le RadGridView styleRow.
Comme vous pouvez le voir, je n'utilise pas directement la propriété IsPinned.
Une idée? J'ai posé la même question sur les forums Telerik
Cette erreur particulière est très commune pour les contrôles WPF de telerik, je l'ai vu de nombreuses fois pour différents contrôles, pas seulement pager. Je suggère de demander leur soutien à ce sujet, ou tout simplement écrire sur leur forum. – Evk
Je viens de le faire :) http://www.telerik.com/forums/telerik-radgridview-style-raddatapager-=-cannot-find-source-for-binding-ispinned#Fy0uMHy3cEmSz9FGtdUv5Q – pix