By the way here is how to use it.
In this example I define an implicit syle for TreeViewItem which set the border in gray when it is selected.
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="BorderThickness" Value="1"></Setter>
<Style.Triggers>
<Trigger Property="c:TreeViewExtensions.IsSelected" Value="True" >
<Setter Property="BorderBrush" Value="Gray"></Setter>
</Trigger>
</Style.Triggers>
</Style>
...
<TreeView c:TreeViewExtensions.EnableMultiSelect="true"
c:TreeViewExtensions.SelectedItems="{Binding SelectedItems}"
ItemsSource="{Binding Items}"
... />
Here is the TreeViewExtension :
And the sample app :