Кнопка включения, когда SelectedItem ListView меняется с нуля и сделать наоборот - PullRequest
2 голосов
/ 16 сентября 2011

Я работаю с WPF и пытаюсь изменить состояние «Включено» кнопки, когда мы выбираем элемент ListView, или, другими словами, как вызвать состояние «Включено» кнопки, когда мы выбираем любой ListViewItem?

И я пытаюсь сделать обратное с другой кнопкой или другими словами ... Могу ли я изменить свойство SelectedItem из ListView на null, когда я нажимаю на другую кнопку, если я использую команды? Как?

Заранее спасибо!

1 Ответ

6 голосов
/ 16 сентября 2011

Вы можете использовать DataTrigger, чтобы отключить его при нулевом значении.

например. (ListView назван lv)

<Button Content="Lorem Ipsum">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedItem, ElementName=lv}"
                             Value="{x:Null}">
                    <Setter Property="IsEnabled" Value="False" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

Кроме того, вы можете напрямую связать свойство IsEnabled и добавить Converter к привязке, которая возвращает соответствующее значение типа bool.


Пример для очистки выбора:

<Button Content="!">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="lv"
                                                   Storyboard.TargetProperty="SelectedItem">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Null}"/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>
...