Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to add event handler to control in datatemplate in resource dictionary

I have a resource dictionary:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="wpfUI2.MainWindowEvents">


<DataTemplate
    x:Key="WorkspacesTemplate">
    <TabControl
        x:Name="Tab1"
        IsSynchronizedWithCurrentItem="True"
        ItemsSource="{Binding}"
        ItemTemplate="{StaticResource ClosableTabItemTemplate}"
        Margin="4"/>
</DataTemplate>
...

And I want to add an event handler to the TabControl. MainWindowEvents is a class defined in a file with no other classes:

Namespace wpfUI2
    Public Class MainWindowEvents

    End Class
End Namespace

When I go to add an event handler like

    <TabControl
        x:Name="Tab1"
        IsSynchronizedWithCurrentItem="True"
        ItemsSource="{Binding}"
        ItemTemplate="{StaticResource ClosableTabItemTemplate}"
        Margin="4"
        SelectionChanged=""
    />

and try to click between the "" to create the event I get an error saying that the class specified by the x:Class attribute must be the first in the file. Well it is!. Strangely, when I create the handler manually:

Namespace wpfUI2
    Public Class MainWindowEvents
        Public Sub Tab1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs)

        End Sub
    End Class
End Namespace

Everything compiles ok, but i get a runtime exception on window.show

What am i doing wrong?

like image 294
GilShalit Avatar asked Sep 07 '11 07:09

GilShalit


1 Answers

I was able to make it work thanks to this:

Is it possible to set code behind a resource dictionary in WPF for event handling?

I see missing stuff in your code, compare to the sample there.

like image 119
Natxo Avatar answered Oct 29 '22 09:10

Natxo