Solução para preencher dicionário, não resisti, mesmo sem ter feito o download do fonte aí está a solução.
string teclas = string.Empty;
//97 é o valor de ‘a’,
for (byte letra = 97, contador = 0, numero = 1; letra < 123; letra++, contador++)
{
teclas = (contador % 3) != 0 ? (string.Concat(teclas, numero)) : (++numero).ToString();
if (teclas.Length == 3 && (numero == 7 || numero == 9))
contador–;
dicionario.Add((char)letra, teclas);
}
dicionario.Add(' ', "0");