如何解决初始化 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>
并使用 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 举报,一经查实,本站将立刻删除。