1
我希望每個可點擊的TreeViewItem都能執行TreeViewItem_MouseLeftButtonDown
,有沒有辦法將這個放在樣式中,所以我不必在任何地方定義它。我可以在代碼後面運行所有的孩子,但我會認爲在一種風格中會有更簡單的方法。有沒有辦法在XAML風格中附加事件?
下面的代碼給我:
找不到樣式屬性 '的PreviewMouseLeftButtonDown' 在 型 'System.Windows.Controls.TreeViewItem'。
<Window x:Class="TestClickTree2343.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStartupLocation="CenterScreen"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True" />
<Setter Property="Foreground" Value="#aaa" />
</Style>
<Style x:Key="TreeViewItemClickableStyle" TargetType="TreeViewItem">
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Foreground" Value="#000" />
<Setter Property="PreviewMouseLeftButtonDown" Value="TreeViewItem_MouseLeftButtonDown" />
</Style>
</Window.Resources>
<StackPanel>
<TreeViewItem Header="Files">
<TreeViewItem Header="File 1">
<TreeViewItem Header="Part 1">
<TreeViewItem Style="{StaticResource TreeViewItemClickableStyle}" Header="Paragraph 1"/>
<TreeViewItem Header="Paragraph 2"/>
</TreeViewItem>
</TreeViewItem>
</TreeViewItem>
</StackPanel>
</Window>
無論你牛逼試圖去做,你可能會以錯誤的方式去做。這有一個非常Winforms的氣味。 – Will 2009-10-14 15:06:48
我想要做的就是響應樹形視圖中的項目點擊。 – 2009-10-14 15:08:25
我會改變模板,堅持在一個(風格)按鈕,並附加一個命令。但如果你沒有做MVVM這可能有點難... – Will 2009-10-14 15:14:55