wpf - 使用 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>
解决方案
没有DesiredCapabilitiesGrid
与. _ _ RadComboBox
_ CellEditTemplate
这就是绑定失败的原因。
被RadComboBox
添加到视觉树中并且具有视觉祖先。这就是为什么设置RelativeSource
工作。有关名称范围的更多信息,请参阅链接。
推荐阅读
- java - JPA: Unable to resolve explicitly named mapping-file in JavaSE
- python - 在 PyQ 中使用希望打开连接句柄并更新 kdb 表
- c# - WPF C# HTMLDocument 变量自动更新
- java - Jsoup 提取跨度类中没有的内容
- c# - 为什么添加 Todo 时我的 TodoList 的 Todos 字段没有填写?
- c# - CefSharp Winforms - 在显示浏览器之前执行 javascript
- angular - Angular 6 输入单选检查值在编辑表单中不起作用?
- c# - 按钮控件样式模板和 BackgroundSizing 属性
- python - 数据库中的外键
- statistics - 用于 T 检验的对照组/测试组的最佳样本量