C# WPF数据绑定到bool不起作用
我需要将一组C# WPF数据绑定到bool不起作用,c#,wpf,C#,Wpf,我需要将一组ListBoxItems的IsEnabled属性绑定到驻留在DataContext中的bool属性值。我已经跟随了几个教程,以达到我的位置,但我仍然没有任何运气。在我的XAML中,我在列表框中定义了setter <ListBox Name="Requests"> <ListBox.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}">
ListBoxItem
s的IsEnabled
属性绑定到驻留在DataContext
中的bool
属性值。我已经跟随了几个教程,以达到我的位置,但我仍然没有任何运气。在我的XAML中,我在列表框中定义了setter
<ListBox Name="Requests">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsEnabled"
Value="{Binding IsEnabled}"/>
现在,当我修改属性时,我没有看到UI中反映的值如预期的那样;正在代码中更改属性值,如下所示:
((dcSystemRequests)DataContext).IsEnabled = !((dcSystemRequests)DataContext).IsEnabled;
由于这是专有软件,我只包含了我认为理解问题所必需的内容,但如果需要,我很乐意提供更多内容。非常感谢您提供任何建议或指导。如果IsEnabled属性是列表框的DataContext的一部分,那么您需要使用绑定:
ListBoxItem
s的DataContext
是每个相应的数据项
有关详细信息,请参阅。如果IsEnabled属性是列表框的DataContext的一部分,则需要使用绑定:
ListBoxItem
s的DataContext
是每个相应的数据项
有关详细信息,请参阅。如果IsEnabled属性是列表框的DataContext的一部分,则需要使用绑定:
ListBoxItem
s的DataContext
是每个相应的数据项
有关详细信息,请参阅。如果IsEnabled属性是列表框的DataContext的一部分,则需要使用绑定:
ListBoxItem
s的DataContext
是每个相应的数据项
有关详细信息,请参见。您的ItemContainerStyle
与您的列表框
具有不同的DataContext
,但列表框的项目数据不同。因此,如果不将绑定源设置为ListBoxItem
的父项,则绑定到IsEnabled
属性没有任何意义。您的ItemContainerStyle
与ListBoxItem
具有不同的DataContext
,而是列表框的项的数据。因此,如果不将绑定源设置为ListBoxItem
的父项,则绑定到IsEnabled
属性没有任何意义。您的ItemContainerStyle
与ListBoxItem
具有不同的DataContext
,而是列表框的项的数据。因此,如果不将绑定源设置为ListBoxItem
的父项,则绑定到IsEnabled
属性没有任何意义。您的ItemContainerStyle
与ListBoxItem
具有不同的DataContext
,而是列表框的项的数据。因此,如果不将绑定源设置为ListBoxItem
的父项,那么绑定到IsEnabled
属性就没有意义。对我来说没有意义。您只有一个布尔值,需要切换许多项?独立地?创建多个bool或切换列表框。改为I启用
。我选择此路径是因为禁用列表框也会禁用滚动条。我需要在列表框上启用滚动条。另外-我有一个未定义的条目数,所以不能选择多个布尔。你应该从listbox DataTemplate中绑定到isenabled属性对我来说没有意义。您只有一个布尔值,需要切换许多项?独立地?创建多个bool或切换列表框。改为I启用
。我选择此路径是因为禁用列表框也会禁用滚动条。我需要在列表框上启用滚动条。另外-我有一个未定义的条目数,所以不能选择多个布尔。你应该从listbox DataTemplate中绑定到isenabled属性对我来说没有意义。您只有一个布尔值,需要切换许多项?独立地?创建多个bool或切换列表框。改为I启用
。我选择此路径是因为禁用列表框也会禁用滚动条。我需要在列表框上启用滚动条。另外-我有一个未定义的条目数,所以不能选择多个布尔。你应该从listbox DataTemplate中绑定到isenabled属性对我来说没有意义。您只有一个布尔值,需要切换许多项?独立地?创建多个bool或切换列表框。改为I启用
。我选择此路径是因为禁用列表框也会禁用滚动条。我需要在列表框上启用滚动条。另外-我有一个未定义的条目数,因此不能选择多个布尔值。您应该从listbox DataTemplate中绑定到isenabled属性这是正确的答案,但是HighCore提前一分钟响应。谢谢你的帮助!这是正确的答案,但HighCore提前一分钟作出了回应。谢谢你的帮助!这是正确的答案,但HighCore提前一分钟作出了回应。谢谢你的帮助!这是正确的答案,但HighCore提前一分钟作出了回应。谢谢你的帮助!
((dcSystemRequests)DataContext).IsEnabled = !((dcSystemRequests)DataContext).IsEnabled;
<Style TargetType="ListBoxItem">
<Setter Property="IsEnabled"
Value="{Binding DataContext.IsEnabled, RelativeSource={RelativeSource AncestorType=ListBox}"/>
</Style>