我有一个ComboBox
组成 a 的 a DataTemplate
,我无法将其IsEnabled
属性绑定到IsReadOnly
templated 上的属性DataGridTemplateColumn
。
我在 VS 输出窗口中收到以下错误:
在“对象”“ContentPresenter”上找不到“IsReadOnly”属性
组合框样式:
<Style TargetType="{x:Type ComboBox}" x:Key="ProficiencyColumnComboBoxStyle">
<Setter Property="IsEnabled"
Value="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},
Path=IsReadOnly, Converter={StaticResource BooleanOppositeConverter}}" />
</Style>
我认为问题在于我如何指定RelativeSource
要识别我的DataGridColumn
. 我试过了:
RelativeSource={RelativeSource TemplatedParent}
RelativeSource AncestorType={x:Type DataGridColumn}
RelativeSource AncestorType={x:Type DataGridTemplateColumn}
我尝试将其他设置器添加到此样式中,并且它们确实生效,因此我知道样式并DataTemplate
正在应用于控件。
附言
我已经使用相同的技术将 a 中的另一个绑定ComboBox
到其模板列DataTemplate
的父级上的属性。不同之处在于,我在这里使用了转换器,并尝试绑定到列(而不是网格)上的属性。但是,即使我从上述样式中删除了转换器,也不会发生绑定。DataGrid