Descobri que usar os componentes com reconhecimento de dados resulta em um aplicativo sem distinção clara entre lógica de negócios e de interface do usuário.
Isso é bom para projetos pequenos, mas à medida que crescem, o código se torna cada vez menos sustentável.
Todos os vários bits de código de evento (e suas interações) podem se tornar um verdadeiro pesadelo para entender!
Invariavelmente, nesses casos, abandonei os componentes com reconhecimento de dados e mudei para um design MVC (codificado à mão).
Isso requer muito esforço de codificação inicial, mas resulta (IMHO) em um projeto que pode ser mantido, extensível e depurável.