我试图了解ListView中属性更改和鼠标事件的排序。
要检测更改,观察selectedIndex与selectedItem之间是否存在差异?
要拖放ListView项,在列表视图和每个ListCell之间注册onDrag ..事件有什么区别吗?
是否存在" onDragDetected"将在选择模型(我观察)更新之前收到事件?
由于
答案 0 :(得分:0)
为了检测变化,观察之间存在差异 selectedIndex vs selectedItem?
不是真的;我认为这只是一个最方便你使用的问题。
拖放ListView项目之间有什么区别 在ListView和每个ListCell上注册onDrag ..事件?
我主张注册ListCell
。没有直接的方法来检查ListView
上的鼠标事件,然后确定鼠标事件发生在哪个单元格上。你将不得不依赖于所选择的项目,并且这在语义上并不是同一件事。 (例如,你如何处理空单元格上的拖动,这不会改变选择......?)
是否存在" onDragDetected"将收到活动 在选择模型(我观察)更新之前?
该实施依赖。我认为当前实现使用mousePressed
事件来处理选择(虽然我不确定),所以它应该在检测到拖动之前触发,但你真的想要依赖于未来版本中不会改变的实现?
恕我直言,依靠所选项目在这里感觉不对。它与您想要的语义不同:您实际上想要了解用户点击的项目"而不是"选择了哪个项目"。当然,这两者是相关的,但它们不是一回事,所以在某种程度上,你要引入对选择API的依赖,它应该独立于你试图实现的东西。 。不过,这绝对是一种意见。你的里程可能会有所不同......