在foreach循环中使用CallBack的难度?

时间:2015-01-30 14:55:32

标签: c# wpf

关于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的回调显式绑定到创建它的角色盘?

感谢任何帮助。

0 个答案:

没有答案