如何在资源字典的数据模板中为控件添加事件处理程序



我有一个资源字典:

<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>
...

我想添加一个事件处理程序到TabControl。MainWindowEvents是一个在文件中定义的类,没有其他类:

Namespace wpfUI2
    Public Class MainWindowEvents
    End Class
End Namespace

当我添加事件处理程序时,比如

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

并尝试在"之间单击以创建事件,我得到一个错误,说x: class属性指定的类必须是文件中的第一个。是啊!奇怪的是,当我手动创建处理程序时:

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

一切编译正常,但我得到一个运行时异常窗口。show

我做错了什么?

我能让它工作多亏了这个:

是否可以在WPF中设置用于事件处理的资源字典后面的代码?

我看到缺失的东西在你的代码,比较样本那里。

相关内容

  • 没有找到相关文章

最新更新