Wpf 数据绑定:禁用组合框项
我想申请我的案子。唯一的区别是我的组合框从枚举列表中获取其项 我总是在Wpf 数据绑定:禁用组合框项,wpf,xaml,data-binding,Wpf,Xaml,Data Binding,我想申请我的案子。唯一的区别是我的组合框从枚举列表中获取其项 我总是在组合框样式中的属性“IsProgrammabile”中遇到绑定表达式错误 我的代码: <ListView ItemsSource="{Binding SchedaSelezionata.ListaIngressi}" SelectionMode="Single"> <ListView.View> <GridView> <GridViewC
组合框
样式中的属性“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、descripzione、configurabileDaute)属于同一对象。
将AncestorType
设置为GridView
或ListView
没有帮助
你能提供解决方案并解释我在这方面不理解的地方吗
提前感谢组合框本身没有名为
IsProgrammabile
的属性,但是它的DataContext
可能有属性,因此您应该将“DataContext.”添加到绑定路径中:
<Setter Property="IsEnabled" Value="{Binding Path=DataContext.IsProgrammabile,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}}"/>
什么绑定不起作用?用于禁用组合框项的绑定,即与属性IsProgrammabile的绑定。我觉得这很明显。我的错误但是绑定到ConfigurableDaute属性有效吗?或者为什么要禁用组合框本身和单个项?除了ItemContainerStyle部分之外,其他一切都可以正常工作。我希望组合框显示所有项目,但其中一些项目不应该是可选的(即,它们应该被禁用)。