private void AddBlockFromFile(string path) { Commands.DelegateCommand removeRemoveBlockClickEvent = new Commands.DelegateCommand(new Action <object>((_) => { // 使用Lambda表达式传递一个完整的Action。 // 删除图像块的Action // 在这里调用Origin的图片块扫描 foreach (var block in ImageBlocks) { if (block.BlockPath == path) { var deleteBlockPath = block.BlockPath; ImageBlocks.Remove(block); GC.Collect(); System.IO.File.Delete(deleteBlockPath); ScanNumberOfImageBlocksClickEvent.Execute(null); break; } } })); var imageBlock = new Models.ImageBlock(path, removeRemoveBlockClickEvent); ImageBlocks.Add(imageBlock); ScanNumberOfImageBlocksClickEvent.Execute(null); App.Log.Info($"ImageBlock {path} has been added to {Name}"); }
private void GetBlocks(XElement curNode) { if (curNode.Name.Equals(Xns + "img")) { int id = ImageBlocks.Count; ImageBlock iBlock = new ImageBlock(id, curNode, this); ImageBlocks.Add(iBlock); curNode.SetAttributeValue("id", iBlock.B_ID); Blocks.Add(iBlock); } foreach (XNode childNode in curNode.Nodes()) { if (childNode is XText) { XText textNode = childNode as XText; int id = ContentBlocks.Count; String text = textNode.Value; ContentBlock cBlock = new ContentBlock(id, text, this); ContentBlocks.Add(cBlock); textNode.Value = cBlock.B_ID; Blocks.Add(cBlock); } else if (childNode is XElement) { GetBlocks(childNode as XElement); } } }