我希望能够使用左侧的箭头更改顺序,并使用右侧的删除按钮删除特定项目。
现在,我已经准备好了删除功能,但是对于如何实现重新排序,我还是有点不知所措。
我的实体如下所示:
public class Account
{
public Guid Id { get; set; }
public string[] Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property 4{ get; set; }
}
我的第一个想法是使用一个int属性和它后面的order。我可以交换两个int属性当一个箭头被按下时。如果我删除了一个元素它仍然可以工作,如果我添加了一个新元素我必须确保设置它为max int+1。但它似乎非常笨拙,效率不高。有没有更好的方法来实现这样的东西?
1条答案
按热度按时间bvhaajcl1#
添加
Order
列是最简单的方法。用于添加:
用于删除
用于重新排序
Math.Min(rowToMove.Order, newOrder)
和Math.Max(rowToMove.Order, newOrder)
在这里很重要,因为如果您根据方向上下移动行,则最小值和最大值函数将起作用其余部分仅更新了
rowsBetween
中的订单