如何在选择treeview项目时启用按钮?

时间:2010-09-30 07:47:53

标签: wpf treeview triggers

我有一个树视图和一个按钮。

我希望在树视图中没有选择任何项目时禁用该按钮(IsEnabled = false)(并且我想在选择项目时启用该按钮...)。

我该怎么做????

这是我的Xaml。

  <Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    x:Class="WpfApplicationTreeViewTest.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480" WindowStartupLocation="CenterScreen" Margin="40" >
    <StackPanel> 
        <TreeView x:Name="strategyTreeView" Margin="10 40 10 10">       
            <TreeViewItem Header="Test"></TreeViewItem> 
            <TreeViewItem Header="Test"></TreeViewItem> 
            <TreeViewItem Header="Test"></TreeViewItem> 
            <TreeViewItem Header="Test"></TreeViewItem> 
        </TreeView>     
        <Button Name="Panel" Content="Selected" Height="40" Width="100" Margin="10"/>   
    </StackPanel>       
</Window>

Thanxs!

2 个答案:

答案 0 :(得分:7)

你可以通过按钮触发这样做:

<StackPanel>
    <TreeView x:Name="strategyTreeView" Margin="10 40 10 10">
        <TreeViewItem Header="Test"></TreeViewItem>
        <TreeViewItem Header="Test"></TreeViewItem>
        <TreeViewItem Header="Test"></TreeViewItem>
        <TreeViewItem Header="Test"></TreeViewItem>
    </TreeView>
    <Button Name="Panel" Content="Selected" Height="40" Width="100" Margin="10">
        <Button.Style>
            <Style TargetType="{x:Type Button}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=strategyTreeView, Path=SelectedItem}" Value="{x:Null}">
                        <Setter Property="IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
</StackPanel>

答案 1 :(得分:-1)

最初你必须在加载后禁用Button,控件将没有选择,使用这个XAML ......

<Button Name="Panel" Content="Selected" Height="40" Width="100" Margin="10" IsEnabled="False"/>

在此之后,您可以处理SelectedItemChanged的{​​{1}}并启用或禁用方法中的按钮,如下所示: XAML:

TreeView

代码背后:

<TreeView x:Name="strategyTreeView" Margin="10 40 10 10" SelectedItemChanged="strategyTreeView_SelectedItemChanged">