你好我的事件设定器有问题 我的窗口:
<TreeView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="CrefoChartTreeViewItemStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
<HierarchicalDataTemplate
DataType="{x:Type local:Node}"
ItemsSource="{Binding ChildNodes}">
</HierarchicalDataTemplate>
</ResourceDictionary>
</TreeView.Resources>
我的CrefoChartTreeViewItemStyle.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"
mc:Ignorable="d"
>
<Style TargetType="TreeViewItem">
<Style.Resources>
<LinearGradientBrush x:Key="ButtonBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="White" Offset="0.25"/>
<GradientStop Color="#FFA5DBE9" Offset="1"/>
</LinearGradientBrush>
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="{DynamicResource ButtonBrush}" />
<EventSetter Event="Click" Handler="ButtonOnClick" />
</Style>
</Style.Resources>
我在编译时收到错误消息:
The event 'click' can not be specified on a Target tag in a Style. Instead, use "EventSetter".
我做错了什么?
是否还有其他方法可以触发树视图中的此按钮?所以我可以放下Code? p>
答案 0 :(得分:1)
这不起作用,因为资源xaml不能有文件后面的代码,所以它们通常被称为“松散的xaml”。您可以在msdn中了解有关EventSetter的内容。您可以而且应该做的是使用将事件转换为命令的东西,例如AttachedCommandBehavior这与MVVM一起非常好地工作。如果你想使用你要求的事件,你可以将TreeView放在UserControl中,然后你可以使用事件。