当ListView的SelectedItem从null更改并执行相反操作时启用按钮

Mig*_*uel 2 wpf xaml triggers wpf-controls

我正在使用WPF并尝试在选择ListView的项目时更改按钮的启用状态,或者换句话说,当我们选择任何ListViewItem时如何触发按钮的启用状态?

我试图用另一个按钮做反向的事情,或者换句话说......当我点击其他按钮时,如果我使用命令,我可以将ListView中的SelectedItem属性更改为null吗?怎么样?

提前致谢!

H.B*_*.B. 7

您可以使用a DataTrigger在null时禁用它.

例如(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>
Run Code Online (Sandbox Code Playgroud)

或者,您可以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>
Run Code Online (Sandbox Code Playgroud)