Ответ 1
Я смог заставить его работать благодаря этому:
Можно ли установить код за словарем ресурса в WPF для обработки событий?
Я вижу недостающий материал в вашем коде, сравнивая его с образцом.
У меня есть словарь ресурсов:
<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
Все компилируется нормально, но я получаю исключение во время выполнения в окне window.show
Что я делаю неправильно?
Я смог заставить его работать благодаря этому:
Можно ли установить код за словарем ресурса в WPF для обработки событий?
Я вижу недостающий материал в вашем коде, сравнивая его с образцом.