关于CallBacks的新手问题。我想这样做:
foreach (CharacterPad cp in WordPad.CharacterPads)
{
............................
for (int k = 0; k < cp.Text.Length; k++)
{
character = cp.Text[k];
Action<Char, int> onEdit = (newcharacter, a) =>
{
/* THIS IS WRONG. CP WILL BE ONLY THE LAST VALUE FROM THE OUTER LOOP ON CALLBACK--NOT EACH VALUE! */
cp.NewWord[a] = newcharacter;
};
CharacterEditorViewModel ce = new CharacterEditorViewModel(chargeo.Bounds, character, cp.Font, k, cp.CharacterPadId, onEdit);
cp.ClosingCharacterEditors += new EventHandler(ce.CharacterPad_Closing);
this.CharacterEditors.Add(ce);
}
如上所述,当从CharacterEditorViewModel执行回调时,无论关闭哪个CharacterEditorViewModel,都只使用外部循环中的最后一个CharacterPad - 不一定是用于创建特定CharacterEditorViewModel的charactepad。
如何更改为将CharacterEditorViewModel的回调显式绑定到创建它的角色盘?
感谢任何帮助。