Доктор Norvig Google обрисовал в общих чертах, как это работает; он даже дает 20ish строка реализация Python:
http://googlesystem.blogspot.com/2007/04/simplified-version-of-googles-spell.html
http://www.norvig.com/spell-correct.html
доктор Norvig также обсуждает, "сделал Вы имеете в виду" в этот превосходный разговор . Доктор Norvig глава исследования в Google - когда спросили, как "сделал Вы имеете в виду", реализован, его ответ authoritive.
Так его проверка правописания, по-видимому, с динамическим словарем создают из других поисков или даже фактических интернет-фраз и такого. Но это все еще проверка правописания .
SOUNDEX и другие предположения не вкладывают взгляд, людей!
Я пытался сделать то же самое, и мне удалось найти рабочий пример кода, привязанного к nullable. Оказывается, если вы установите для параметра formattingEnabled значение true, он работает, но если он false, вы получите исключение недопустимого приведения.
Итак, ваш код выглядит следующим образом:
this.dateReceived.DataBindings.Add("Value", this._object, "DateTimeReceived");
Вместо этого должен выглядеть так:
this.dateReceived.DataBindings.Add("Value", this._object, "DateTimeReceived", true);
Очевидно, старый код привязки данных требует, чтобы типы точно совпадали, но позже Microsoft добавила возможность автоматического преобразования типов за вас. Отсюда: http://msdn.microsoft.com/en-us/library/aa480734.aspx
В более ранних версиях .NET Framework вам приходилось вручную выполнять преобразование типов и форматирование с помощью параметров Format и Разбирать события объекта Binding. Теперь вы можете сделать это, включив форматирование объекта Binding, либо путем установки свойства FormattingEnabled напрямую, либо путем передачи true методу Add в ControlBindingsCollection.