我尝试使用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>
答案 0 :(得分:0)
在DesiredCapabilitiesGrid
中与RadComboBox
相同的namescope中没有名为CellEditTemplate
的元素。这就是绑定失败的原因。
RadComboBox
已添加到视觉树,但具有视觉祖先。这就是设置RelativeSource
工作的原因。请参阅链接以获取有关名称范围的更多信息。