ListView单选变化和拖动事件
ListView single selection change and drag event
我正在尝试了解 ListView 中 属性 更改和鼠标事件的顺序。
要检测变化,观察 selectedIndex 与 selectedItem 之间有区别吗?
拖放 ListView 项在针对 ListView 注册 onDrag.. 事件与每个 ListCell 之间有什么区别吗?
在选择模型(我正在观察)更新之前是否会收到 "onDragDetected" 事件?
谢谢
To detect a change is there a difference between observing
selectedIndex vs selectedItem?
不是真的;我觉得这只是你用起来最方便的问题。
To drag and drop ListView items is there any difference between
registering onDrag.. events against ListView vs each ListCell?
我会提倡在 ListCell
上注册。没有直接的方法来检查 ListView
上的鼠标事件,然后确定鼠标事件发生在哪个单元格上。您将不得不退回到所选项目,而这在语义上并不是真正的同一件事。 (例如,您将如何处理空单元格上的拖动,这不会改变选择...?)
Is there any scenario where a "onDragDetected" event would be received
before the selection model (which I'm observing) is updated?
这取决于实现。我 认为 当前实现使用 mousePressed
事件来处理选择(虽然我不确定),所以它应该在检测到拖动之前触发,但你真的想要依靠该实现在未来的版本中不会改变?
恕我直言,依赖所选项目在这里感觉不对。它在语义上与您想要的不同:您实际上想知道 "which item the user clicked on",而不是 "which item is selected"。当然,这两者是相关的,但它们不是一回事,所以在某种程度上你会引入对选择 API 的依赖,它应该独立于你想要实现的目标。不过,这绝对是一种意见。您的里程可能会有所不同...
我正在尝试了解 ListView 中 属性 更改和鼠标事件的顺序。
要检测变化,观察 selectedIndex 与 selectedItem 之间有区别吗?
拖放 ListView 项在针对 ListView 注册 onDrag.. 事件与每个 ListCell 之间有什么区别吗?
在选择模型(我正在观察)更新之前是否会收到 "onDragDetected" 事件?
谢谢
To detect a change is there a difference between observing selectedIndex vs selectedItem?
不是真的;我觉得这只是你用起来最方便的问题。
To drag and drop ListView items is there any difference between registering onDrag.. events against ListView vs each ListCell?
我会提倡在 ListCell
上注册。没有直接的方法来检查 ListView
上的鼠标事件,然后确定鼠标事件发生在哪个单元格上。您将不得不退回到所选项目,而这在语义上并不是真正的同一件事。 (例如,您将如何处理空单元格上的拖动,这不会改变选择...?)
Is there any scenario where a "onDragDetected" event would be received before the selection model (which I'm observing) is updated?
这取决于实现。我 认为 当前实现使用 mousePressed
事件来处理选择(虽然我不确定),所以它应该在检测到拖动之前触发,但你真的想要依靠该实现在未来的版本中不会改变?
恕我直言,依赖所选项目在这里感觉不对。它在语义上与您想要的不同:您实际上想知道 "which item the user clicked on",而不是 "which item is selected"。当然,这两者是相关的,但它们不是一回事,所以在某种程度上你会引入对选择 API 的依赖,它应该独立于你想要实现的目标。不过,这绝对是一种意见。您的里程可能会有所不同...