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