问题标签 [selectionchanged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - DataGrid SelectedIndex 已更改事件处理程序
我有一个 WPF DataGrid,我正在尝试使用以下代码自动滚动:
我遇到的问题是每次 DataGrid 的 SelectedIndex 更改时都不会调用此事件处理程序。是的,当我单击网格或添加或删除一个项目时,它会被调用,但它不会被其他一些操作调用,例如在基础集合中向上或向下移动当前选定的项目,该集合通过以下方式设置:
mydatagrid.ItemsSource = 序列;
(其中 Seq 是从 ObservableCollection<> 派生的类型的对象)。
在我的故障排除尝试中,我将 TextBlock 的文本绑定到 mydatagrid 的 SelectedIndex 属性。无论我对数据网格和/或基础数据源执行什么操作,索引号都会完美更新。
所以我的问题是:我如何在 C# 代码中创建一个事件处理程序,该处理程序会在 SelectedIndex 的值的任何和所有更改时被调用,就像我的小文本块绑定示例一样?
我尝试为 DataGrid 查找 propertyChanged 事件,但无济于事。我尝试利用似乎远程相关的所有 DataGrid 事件,但无济于事。我也尝试过使用基础集合的 CollectionChanged 事件,但这似乎与数据网格没有很好的同步(至少在事件发生的那一刻)。
谢谢
vb.net - 避免列表视图选定的索引更改触发两次
很简单的问题,当列表视图的选定索引发生变化时,事件会触发两次,一次用于取消选择,第二次用于选择下一项。
我需要在不同时间选择或取消选择时使用该事件,但是如果取消选择只是稍后重新选择,它会使我的一半 ui 闪烁从启用到关闭再重新打开,它也会导致相当多的代码运行所以如果它是另一个被点击的项目而不是空格(用于取消选择),我只需要一种避免取消选择触发的方法
Dave R 说在这里使用 100 毫秒计时器:我的 ListView 选择事件处理是否遗漏了一些东西, 这听起来像是可以工作但看起来很不整洁,或者通常是一种不好的做法。
我唯一的另一个想法是使用点击事件,然后在该位置找到该项目?但我宁愿不去麻烦
提前致谢!
-编辑-
我只是认为单击事件会首先触发,因此我可以设置一个标志,如果单击事件发生在某个项目上,则跳过选择索引更改代码,然后在使用该标志后重置该标志,从而跳过取消选择?我现在看看,但再次感觉不是一种非常有效或简单的方法来做一些听起来很简单的事情?
wpf - 在不访问其 ItemsSource 的情况下将项目添加到 ListBox
我刚刚将一个项目从 .NET 3.5 升级到 4.0,发现 ListBox 的行为有所不同。项目有时会从使用后面的代码添加到 ListBoxes
这不再触发 myListBox.SelectionChanged 事件并导致程序中的错误。有没有更好的方法来做到这一点?
谢谢,马特
c# - 当用户选择相同日期时要考虑哪个日历事件
我正在使用链接按钮来切换日历calendar.selection_changed
。我使用事件来获取日期并隐藏日历控件。但是如果用户尝试再次选择相同的日期,我应该考虑什么事件来获取日期并更改日历的可见性。
谢谢 PS:如果我使用enable view state
属性,它适用于同一日期,但切换停止工作。
c# - 从 Window 获取用户控件中选定的列表框项
我有User control
一个list box
。
这User control
位于我的窗口。如何从用户控件的列表框中检测并获取所选项目?
我以前试过这个,但是当我从列表框e.OriginalSource
返回TextBlock
类型中选择一个项目时。
或者有什么更好的方法可以SelectionChanged
从我的表单中检测列表框?
datagrid - .NET 4.0 DataGridCombobox SelectionChanged 问题
我的程序中有一个要求,即一旦在组合框中选择了一个项目,组合框中的对象绑定(来自 ViewModel)就会更新。目前,对象仅在通过按 Enter 或离开单元格提交编辑后更新。用户不想要额外的步骤。
我的想法是让在组合框中选择一个项目的行为触发 CommitEdit() 方法,然后触发 CancelEdit()。但是,我似乎无法找到一种方法来挂钩 DataGridComboBoxColumn 的 SelectionChanged 事件,因为它不可用。
其他建议是在视图模型中侦听属性更改事件,但在单元格编辑完成之前不会更改属性。
谁能想到一种方法来导致在 DataGridCombobox 中选择新项目(索引)以关闭单元格的编辑,就像用户按下 Enter 或离开单元格一样?
注意:由于客户限制,我不能使用 .NET 4.5。
wpf - WPF 中的 SelectionChanged 事件是否只能用于用户交互?
我想处理 WPF DataGrid 元素中的 SelectionChanged 事件,仅用于用户交互/选择,如果是由于绑定或其他设置值而跳过。知道如何确定用户交互是否更改了选择吗?或者任何可以完成类似任务的替代事件?
wpf - WPF组合框上的选定索引更改?
我正在将我的应用程序从 WinForms 转换为 WPF。我在WinForms中遇到了这个问题,如果我清除一个组合框,它不会触发combobox.selectedindexchange。它仅在用户实际更改索引时触发。
这就是我需要的功能。但是在 WPF 中我只能找到 combobox.SelectionChanged。不幸的是,这会在索引更改和清除组合框(任何更改)时触发。
在 WPF 中,如何仅在用户更改索引时触发事件?我假设有一个我缺少的解决方案,就像 WinForms 解决方案一样。我试图不玩带有全局变量的游戏,并且不得不跟踪以前选择的内容……那真是一团糟。
Mouseleave 也是一团糟。
我将不胜感激任何帮助!
listview - WinRT 中的 MvvmCross 和 ListBox / ComboBox 绑定
我需要为 WinRT 应用程序中的列表和组合框实现选择更改事件。我正在使用 MvvmCross 但 AFAIK 这是一个 WinRT 而不是 Mvx 特定的问题。System.Windows.Interactivity 不适用于 WinRT 应用程序,因此我无法使用基于 i:Interaction.Triggers 的技术。我想以真正的 MVVM 方式实现绑定,而无需切换到代码隐藏,因此我可以在其他平台上尽可能多地重用。在 WinRT 应用程序中实现它的合理方法是什么?我在 MvvmCross 示例中没有找到任何示例。
提前致谢
windows-phone-7 - 列表框内的访问控制而不触发 selectionChanged 事件
对于我在 windows phone 中的列表框,我在本教程的帮助下为每个项目添加了一个复选框 (选项 2)。在我的列表框已经有一个 SelectionChanged 事件之前。当用户仅选中复选框时,如何防止触发事件?SelectionChanged 事件应该只在他点击列表框中的文本框时触发,而不是复选框。
那是我的列表框:
这些是我的检查事件:
另外我必须提到,仅当我选中复选框时才会引发 selectionChanged 事件。不是当我取消选中它时。