Я создаю приложение WPF с использованием MVVMLight. я определил ListView внутри TabControl DataTemplate, например, так:Добавление EventTrigger в ListView внутри результатов DataTemplate в XamlParseException
<TabControl.ContentTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding Builds}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
SelectedItem="{Binding SelectedBuild,
Mode=TwoWay}"
SelectionMode="Single">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding BuildSelectedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ListView>
</DataTemplate>
</TabControl.ContentTemplate>
но XAML Designer возвращает эту ошибку (предотвращает загрузку дизайнера предварительного просмотра):
XamlObjectWriterException: Collection property 'System.Windows.Controls.ListView'.'Triggers' is null.
at System.Xaml.XamlObjectWriter.WriteGetObject()
at System.Xaml.XamlWriter.WriteNode(XamlReader reader)
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)
моя команда определяется как и в мой ViewModel:
private RelayCommand _buildSelectedCommand;
public RelayCommand BuildSelectedCommand => _buildSelectedCommand ??
(_buildSelectedCommand = new RelayCommand(BuildSelectedAction));
Это первый раз, когда я вижу эту ошибку, и это происходит только во время разработки, здание и время работы все в порядке. Извлечение i: Interaction.Triggers устраняет проблему, но мне нужно событие DoubleClick в списке.
Если вы спросите, почему я не добавил триггер на уровне ListItem, это связано с тем, что мне нужно установить свойство в ViewModel, привязав к табуляции TableControl DataTemplate, а не ListItem ViewModel.
Большое спасибо за помощь!