0

你好 SO 社区 :o)

首先,我为我的英语感到抱歉,我知道这并不完美,但我竭尽全力改进它。:)

我目前正在使用 WPF 中的 Telerik 框架。

这是代码(我不得不更改我的变量名称)

 <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" />

错误:

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')

网格、寻呼机和数据以正确的颜色很好地显示,除了我的 VS 输出中有这个错误。

有关此代码用法的更多信息。

此代码在 UserControl 中使用,此 userControl 包装在 RadPane 中,然后注入到 RadPaneGroup 中。

我为什么要这样做?因为我使用 prism 将我的模块作为 RadPane 动态注入到 mainRegion

仅当我将窗格移动到 RadPaneGroup 之外时才会发生错误

就像我搞砸了 RadGridView styleRow。

如您所见,我没有直接使用 IsPinned 属性。

任何的想法?

4

1 回答 1

0

我在 Telerik 论坛上问过同样的问题。

简短的回答是:将 RadGridView 的 GroupRenderMode 设置为 Flat

更多细节:

将此问题记录为 Telerik UI WPF 错误。

要获取有关此错误的更多信息和代码以及如何重现它,请点击此链接:Telerik Forum Binding error thread

遵循错误报告:错误报告

Telik雇人的回答是:

我能够在最后成功重现该错误,因此在我们的反馈门户中记录了一个新的错误报告,您可以订阅该报告以获得有关其状态任何更改的通知。为了感谢您的帮助,我奖励了您一些 Telerik 积分。

目前,您可以将 RadGridView 的 GroupRenderMode 设置为 Flat 以避免这些绑定错误。

问候, Dilyan Traykov Telerik by Progress

于 2016-09-30T06:41:09.000 回答