Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据绑定到bool不起作用_C#_Wpf - Fatal编程技术网

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>