2010-09-30 51 views
4

我有一個樹形視圖和一個按鈕。如何在treeview-item選擇時啓用按鈕?

當樹狀視圖中沒有選擇任何項目時我想禁用按鈕(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! ,有

回答

6

您可以用按鈕觸發這樣實現這一點:

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

嗨奧斯卡,這個偉大的工程!!!!這是我的問題的解決方案。 – Marcel 2010-09-30 09:33:04

-1

首先,您必須禁用按鈕被加載後,控制系統將沒有選擇,通過使用這種XAML ...

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

在這之後,你可以處理TreeViewSelectedItemChanged,並啓用或從該方法禁用按鈕,像這樣: XAML:

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

代碼後面:

private void strategyTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    if (e.NewValue != null) 
     Panel.IsEnabled = true; 
} 
相關問題