首页 > 解决方案 > 使用 ElementName 时 CellEditDataTemplate 中的数据绑定不起作用

问题描述

我尝试使用 Binding 中的 ElementName 属性更新 RadComboBox 的 ItemSource,但是当我使用 RelativeSource 时,它​​按预期工作。

有什么区别。谁能告诉我。

 <telerik:RadGridView   Name="DesiredCapabilitiesGrid" RowIndicatorVisibility="Collapsed" AllowDrop="False" CanUserDeleteRows="True ShowGroupPanel="False" Height="Auto" Width="Auto"ItemsSource="{Binding DesiredCapabilities,Mode=TwoWay}" 
                                           GroupRenderMode="Flat" NewRowPosition="Bottom" Loaded="DesiredCapabilitiesGrid_Loaded">                            
                        <telerik:RadGridView.Columns>
                            <telerik:GridViewDataColumn Header="Property Names" Width="2*" IsSortable="True" DataMemberBinding="{Binding DesiredCapabilityName}">
                                <telerik:GridViewDataColumn.CellEditTemplate>
                                    <DataTemplate>
                                        <telerik:RadComboBox ItemsSource="{Binding Path=DataContext.ConsiderDesiredCapabilites,ElementName="DesiredCapabilitiesGrid"}" IsEditable="True"></telerik:RadComboBox>
                                    </DataTemplate>                                        
                                </telerik:GridViewDataColumn.CellEditTemplate>

                        </telerik:RadGridView.Columns>
                    </telerik:RadGridView>

标签: wpf

解决方案


没有DesiredCapabilitiesGrid与. _ _ RadComboBox_ CellEditTemplate这就是绑定失败的原因。

RadComboBox添加到视觉树中并且具有视觉祖先。这就是为什么设置RelativeSource工作。有关名称范围的更多信息,请参阅链接。


推荐阅读