我正在尝试对我的案件适用this solution。唯一的区别是我的ComboBox
从枚举列表中获取项目。
我总是遇到ComboBox
样式的属性“ IsProgrammabile”的绑定表达式错误。
我的代码:
<ListView ItemsSource="{Binding SchedaSelezionata.ListaIngressi}" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="NR." DisplayMemberBinding="{Binding Numero}" />
<GridViewColumn Header="FUNCTION" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Source={helpers:EnumBindingSource {x:Type models:INGRESSI}}}" SelectedItem="{Binding Funzione}"
ToolTip="{Binding Descrizione}" IsEnabled="{Binding ConfigurabileDaUtente}" Width="150" >
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsEnabled" Value="{Binding Path=IsProgrammabile, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}}"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
请注意,“ IsProgrammabile”属性与其他属性(Numero,Funzione,Descrizione,ConfigurabileDaUtente)属于同一对象。
将AncestorType
设置为GridView
或ListView
并没有帮助。
您能提供解决方案并向我解释在这种情况下我不了解的内容吗?
预先感谢
答案 0 :(得分:1)
ComboBox
本身没有名为IsProgrammabile
的属性,但是它的DataContext
可能具有,因此您应该添加“ DataContext”。到绑定路径:
<Setter Property="IsEnabled" Value="{Binding Path=DataContext.IsProgrammabile,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}}"/>