WPF MVVM Light 无法触发 DataGrid AutogeneratingColumn 事件动态管理列

WPF MVVM Light Cannot trigger DataGrid AutogeneratingColumn event to dynamically manage columns

我想动态管理绑定到 EF 元素的 Datagrid 的列,并且应该只显示从 ListBox.

中选择的列

我使用 MVVM Light 工具包,当我尝试使用和触发 AutoGeneratingColumns 事件时它不起作用。它永远不会触发,即使是在 DataGrid.

的第一代

这是我的视图模型代码:

 private void dgArticles_ColumnGeneration(DataGridAutoGeneratingColumnEventArgs args)
        {
            string headername = args.Column.Header.ToString();

            foreach (Champ c in LstSelected)
            {
                if (headername != c.Libelle)
                {
                    args.Cancel = true;
                }
                args.Column.Header = c.Libelle;
            }
        }

这是我认为 xaml DataGrid 的代码:

 <DataGrid Name="dgArticles"
              IsEnabled="True"
              Grid.Column="2"
              Grid.Row="1"
              AutoGenerateColumns="True"
              ItemsSource="{Binding LstArticles}">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="AutoGeneratingColumn">
                <Command:EventToCommand Command="{Binding GenerateColumns}" PassEventArgsToCommand="True"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </DataGrid>

最后,我想使用 Button 当用户修改他在 ListBox 中选择的字段时触发此事件刷新 DataGrid .

感谢您的帮助!

编辑: 当然,我在 VM 的构造函数中声明了我的命令:

 public ExportViewModel()
        {
            GenerateColumns = new RelayCommand<DataGridAutoGeneratingColumnEventArgs>(dgArticles_ColumnGeneration);
            LstSelected = new ObservableCollection<Champ>();
            LstArticles = exp.ListerArticles();
        }

我自己解决了这个问题,这是 "columnS" 上的语法错误,应该是我的 xaml...

中的列

事件正确触发。