在我的项目中,我想首先删除一些行然后插入新行。
但有时会发生的事情是先插入新行然后删除起始行。
要解决这个问题,我需要按照正确的顺序管理操作。
请帮帮我。
答案 0 :(得分:1)
这是Silverlight常见的模式/问题,因为几乎所有“一切”都是异步的(出于好的理由)。
根据您的添加和删除的触发方式,您可以排队任务(例如代理列表)并让每个任务在完成后从列表中执行下一个任务。
替代方案听起来有点复杂,但我们提出的解决方案是创建一个SequentialAsynchronousTaskManager类,其操作方式与SilverlightTest类类似,后者使用EnqueueConditional()方法添加等待条件和EnqueueCallback() s执行代码。
它基本上包含一个委托列表(可以是简单的Lambda表达式),并定期执行它,直到它返回true(EnqueueConditional)或只执行一些代码(EnqueueCallback)。