wpf - .NET Core 3.1 更新交互触发器和 Prism 后没有触发 SelectionChanged 事件
问题描述
今天,我已将所有交互触发器从http://schemas.microsoft.com/expression/2010/interactivity更改为 http://schemas.microsoft.com/xaml/behaviors 。现在我的问题是,selectionChanged
视图模型中没有触发任何事件。我的数据源是视图模型。
我的代码:
<ComboBox Name="CBGL" ItemsSource="{Binding Path=Troughs}"
DisplayMemberPath="TroughNumber" SelectedValuePath="Id"
SelectedValue="{Binding Model.Trough}" Width="173">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding CBGLRegionChangedCmd}" />
</i:EventTrigger>
</i:Interaction.Triggers>
如果有人更改选择,CBGLRegionChangedCmd
则不会触发。
来自视图模型的代码:
CBGLRegionChangedCmd = new MyICommand(InvokeCommandAction_Changed);
如果我撤消更新一切正常...
解决方案
您必须将 ViewModel 添加到此问题以获得最佳答案。但我认为您在 SelectedValue="{Binding Model.Trough}" 中的绑定是错误的,请在视图模型中定义一个属性 full 类型为 Trough 和 xxx 名称,然后在其中调用 notifyPropertyChange() 方法,然后设置 SelectedItem="{Binding xxx,UpdateSourceTrigger =属性更改}"
您还可以在 int 类型的视图模型中设置一个属性 full ,名称为 yyy 并将其绑定到 SelectedValue 属性,例如: SelectedValue="{Binding yyy,UpdateSourceTrigger=PropertyChanged}"
推荐阅读
- python - Python - 键错误:0
- javascript - 从客户端 JS 发送 JSON,服务器 Nodejs 读取为 [object object]
- sql - 如何将此值插入此表
- c# - 在 C# 中创建简单的全局事件系统的最佳方法是什么?
- python - 简单的混合器 OpenGL 三角形顶点位置损坏
- webpack - 在动态导入 webpack 时避免 bundle 中的重复代码
- visual-studio - 如何通过 Visual Studio 修复功能应用发布中的错误
- python - 无法在 Win10 上安装 tensorflow - ImportError: DLL load failed
- sql - 没有 SELECT 访问的查询表
- aws-lambda - 使用 JSON 输入替换 AWS Step Function 中的“变量”