Я пытаюсь проверить это на простом уровне, где у меня есть следующий TasksDatagridView.xaml:
<UserControl x:Class="Example.Views.TasksDatagridView" ...>
<UserControl.Resources>
<local:CompleteConverter x:Key="completeConverter" />
<local:Tasks x:Key="tasks" />
<CollectionViewSource x:Key="cvsTasks" Source="{Binding Path=tasks}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="ProjectName"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</UserControl.Resources>
<Grid>
<DataGrid x:Name="myDG" AutoGenerateColumns="True" ItemsSource="{Binding Source={StaticResource cvsTasks}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="AutoGeneratingColumn">
<i:InvokeCommandAction Command="{Binding GenColumns}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
</Grid>
</UserControl>
В моем TasksDatagridView.xaml.cs я попытался оба сначала установить текстовый текстовый текст this.DataContext = new ViewModels.TaskDgVm()
, а затемInitializeComponent()
и наоборот.
В моем главном окне MainWindow.xaml я ссылаюсь на элемент управления следующим образом:
<Window x:Name="MainWindow" x:Class="Example.Views.MyMainWindowView" ...>
<Grid>
<local:TasksDatagridView x:Name="tview" />
</Grid>
</Window>
Это производный пример, показывающий точку, поэтому, пожалуйста, извините за неправильное написание.Итак, у меня две проблемы:
В строке MainWindow.xaml, где я ссылаюсь на элемент управления: <local:TasksDatagridView x:Name="tview" />
он говорит, что выдает исключение system.exception, но код все еще компилируется и выполняетсяхорошо.
AutoGeneratingColumn не запускается.
На самом деле я пытаюсь выяснить # 2 и почему это конкретное событие не запускается.Прямо сейчас у меня есть простая печать в методе execute, и при замене имени события простым щелчком или загруженным событием для сетки данных команда работает нормально, и почти любое другое событие запускается, что говорит мне, что это не что-то в моей viewmodel иликласс команд делегата.Любые мысли о том, почему событие autogenerate column не работает с командой?Примечание. Я убедился, что имя события не написано с ошибкой.
Редактировать: После публикации вопроса я нашел здесь связанный вопрос: MVVM - WPF DataGrid - Событие AutoGeneratingColumn Однако они используют mvvm-light
инструментарийгде я использую библиотеку интерактивности смесь выражений.Хотя один и тот же ответ может относиться к обоим вопросам, на самом деле это два отдельных набора инструментов.