привязка wpf к элементу - PullRequest
6 голосов
/ 24 июля 2011

Ну, я думаю, это просто, мой сценарий состоит из 2 элементов: ListBox и Кнопка :

<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, только если элемент из ListBox выбран (в фокусе) в XAML

Я пытался

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

но не идти.

Ответы [ 2 ]

5 голосов
/ 24 июля 2011

Какое отношение выбор имеет к касаниям? (Также ElementName выключен)

Я бы попробовал это:

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

Редактировать: Видимо, в отличие от варианта триггера, люди, похоже, не видят, как это работает: в основном, система привязки пытается преобразовать входные данные в имеющееся свойство, логическое значение, поэтому, когда получает целое число, 0 будет преобразовано в false, что-либо выше до true. Таким образом, кнопка будет включена, если выбран один или несколько элементов.

3 голосов
/ 24 июля 2011
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...