问题描述
我在 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>
并使用 AutoWireviewmodel。 viewmodel 当然是定义 AutoGeneratingColumnCommand。 在应用程序初始化期间,我调用 RegisterViewWithRegion。应用程序正在从另一个视图启动,用户可以通过单击按钮使用 DataGrid 导航到该视图。问题是在第一次显示视图之前 AutoGeneratingColumnCommand 没有调用。 Prism 创建 View 和 viewmodel,设置 DataContext,ItemSource 也设置正确,DataGrid 正在填充,但标题没有自定义。在第一次显示视图后,AutoGeneratingColumn 即使用户更改了视图也能正常工作。 我尝试在 OnNavigatedTo(INavigationAware 界面)中强制刷新 ItemSource,但在第一次导航事件中没有成功。之后就好了。
我该如何解决这个问题?我将不胜感激。
更新:我在视图的代码隐藏中添加了 AutoGeneratingColumn 事件的处理程序。此处理程序实际上调用了 OnNavigatedTo 中的强制刷新 ItemSource。来自 EventTrigger nop.
的命令更新#2:我用命令行为机制替换了EventTrigger,现在这种处理事件的方法和使用的代码隐藏方法之间没有区别。我不确定,但认为我的问题有类似的原因:MVVM - WPF DataGrid - AutoGeneratingColumn Event
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)