wpf绑定到元素

时间:2011-07-23 21:23:00

标签: wpf xaml data-binding

嗯,我想我的场景很容易有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中的Item时

我试过

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

但没有去。

2 个答案:

答案 0 :(得分:5)

选择与Touches有什么关系? (此外ElementName已关闭)

我会试试这个:

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

编辑:显然,与触发变体不同,人们似乎并没有看到它是如何工作的:基本上绑定系统试图将输入转换为手头的属性,一个布尔值,所以当它得到一个整数,0将转换为false,高于true。因此,如果选择了一个或多个项目,将启用按钮。

答案 1 :(得分:3)

<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>