初始化 Prism 应用程序期间的 DataGrid AutoGeneratingColumn 问题

问题描述

我在 Prism 中遇到 AutoGeneratingColumn 事件的问题。 我的视图之一具有 DataGrid 定义:

<DataGrid ItemsSource="{Binding RegisteredEvents,Mode=OneWay}" AutoGenerateColumns="True"> 
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="AutoGeneratingColumn">
            <i:InvokeCommandAction Command="{Binding AutoGeneratingColumnCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>
     </i:Interaction.Triggers>
</DataGrid>

并使用 AutoWireviewmodelviewmodel 当然是定义 AutoGeneratingColumnCommand。 在应用程序初始化期间,我调用 RegisterViewWithRegion。应用程序正在从另一个视图启动,用户可以通过单击按钮使用 DataGrid 导航到该视图。问题是在第一次显示视图之前 AutoGeneratingColumnCommand 没有调用。 Prism 创建 View 和 viewmodel,设置 DataContextItemSource 也设置正确,DataGrid 正在填充,但标题没有自定义。在第一次显示视图后,AutoGeneratingColumn 即使用户更改了视图也能正常工作。 我尝试在 OnNavigatedToINavigationAware 界面)中强制刷新 ItemSource,但在第一次导航事件中没有成功。之后就好了。

我该如何解决这个问题?我将不胜感激。

更新:我在视图的代码隐藏中添加AutoGeneratingColumn 事件的处理程序。此处理程序实际上调用OnNavigatedTo 中的强制刷新 ItemSource。来自 EventTrigger nop.

的命令

更新#2:我用命令行为机制替换了EventTrigger,现在这种处理事件的方法和使用的代码隐藏方法之间没有区别。我不确定,但认为我的问题有类似的原因:MVVM - WPF DataGrid - AutoGeneratingColumn Event

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)