【问题标题】:wpf binding to elementwpf绑定到元素
【发布时间】:2011-07-23 21:22:59
【问题描述】:

好吧,我想我的场景很容易有 2 个元素: 列表框按钮

<ListBox Name="BannedItemsListBox"
         Margin="5"
         MinWidth="100"
         MaxWidth="100" " Height="
         204" ItemsSource="{Binding Path=BannedItems, Mode=TwoWay}"></ListBox>
<Button Name="RemoveBannedItemsButton"
        Margin="5"
        MinWidth="65"
        Height="22"
        Click="RemoveBannedItemButton_Click">Remove</Button>

我想将 IsEnabled 属性按钮绑定为 true,仅当在 XAML

中选择(聚焦)ListBox 中的项目时

我试过了

IsEnabled="{Binding ElementName=BannedSourcesListBox, Path=TouchesDirectlyOver.Count}"

但是不行。

【问题讨论】:

    标签: wpf xaml data-binding


    【解决方案1】:

    选择与触摸有什么关系? (ElementName 也关闭了)

    我会试试这个:

    IsEnabled="{Binding SelectedItems.Count, ElementName=BannedItemsListBox}"
    

    解释:基本上绑定系统尝试将输入转换为手头的属性,一个布尔值,所以当它得到一个整数时,0 将转换为false,任何更高的true。因此,如果选择了一个或多个项目,按钮将被启用。

    【讨论】:

      【解决方案2】:
      <Button Content="Button"
              Height="23"
              HorizontalAlignment="Left"
              Margin="138,12,0,0"
              Name="button1"
              VerticalAlignment="Top"
              Width="75"
              Click="button1_Click">
          <Button.Style>
              <Style>
                  <Setter Property="Button.IsEnabled"
                          Value="True" />
                  <Style.Triggers>
                      <DataTrigger Binding="{Binding ElementName=lstTest , Path=SelectedItem}"
                                   Value="{x:Null}">
                          <Setter Property="Button.IsEnabled"
                                  Value="False" />
                      </DataTrigger>
                  </Style.Triggers>
              </Style>
          </Button.Style>
      </Button>
      

      【讨论】:

        猜你喜欢
        • 2014-11-30
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        • 2018-07-18
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多