In order to implement filtering functionality in the SmartList, I had a need to provide the mappings that correspond dialer keyboard key to the characters accordingly to the GSM 02.30 format: 2 - “abc”, 3 - “def” etc... If you look at the code, you'll be able to see that it's simply done by utilizing a Hashtable:
numToLetter.Add('2', "abc");
numToLetter.Add('3', "def");
numToLetter.Add('4', "ghi");
numToLetter.Add('5', "jkl");
...
(By the way, if anybody knows a way to retreive these mapping from the system automatically, please let me know)
This private member is exposed to a developer as the KeyMappings property, which means that you should be able to add/replace the default characters with a language specific ones:
smartList1.KeyMappings['1'] += "ä";
or
smartList1.KeyMappings['1'] = "абв";
The current logic in the control doesn't allow filtering if a Smartphone or Pocket PC device has a built in “qwerty” keyboard. But since I've already received a few requests to enable this functionality in the SmartList, I'll be adding it very soon.