Não é possível separar a lista suspensa do Winforms do banco de dados
É um pouco estranho, mas estou lutando há algumas horas e não consigo entender o que está acontecendo.
Eu queria saber se alguém já passou por esse problema, e talvez possa explicar isso. Estou criando um aplicativo Winforms simples e tentando usar muitos dos controles internos.
Basicamente, eu tenho um formulário com um controle de usuário e alguns campos de captura de dados. 3 dos campos são listas suspensas e, no controle do usuário, tenho um controle bindingSource que se liga diretamente a uma classe Product.
Em tempo de execução, forneço uma instância da classe Product ao BindingSource e a classe contém uma propriedade deProductType
. Para simplificar, também adicionei umList<ProductType>
ProductTypes para a classe de produto que se carrega quando consultado, o que significa que eu posso apenas usar o mesmo bindingSource e escolher oProductTypes
Membro de dados como a fonte de dados da lista suspensa.
Ao executar o formulário, a lista se encaixa perfeitamente e posso ver todos os tipos de produtos listados e posso selecionar um e tabular ou clicar no próximo campo. Mas, obviamente, o valor selecionado não será vinculado porque não escolhi nenhuma bindings-SelectedValue para a lista suspensa, apenas uma fonte de dados. Assim que eu tiver certeza de que o menu suspenso modifique a instância do Produto vinculando ao Bindings-SelectedValue e, em seguida, execute o formulário, a lista ainda será preenchida perfeitamente e eu posso percorrer os controles, desde que não faça uma seleção no menu suspenso. Se eu fizer uma seleção no menu suspenso, o menu suspensomantém o foco. Não posso sair por amor ou dinheiro e nem posso clicar no botão Cancelar no formulário. O botão Fechar no canto superior direito é o único botão no qual posso clicar que funciona e não posso clicar em nenhum outro campo ou menu suspenso. Isso afeta todos os três menus suspensos assim que uma seleção é feita.
Alguém tem alguma idéia do que estou perdendo?
Eu tentei mudar algumas coisas e tive algum sucesso alimentando os valores suspensos uma string [] em vez de um membro de um objeto. Isso parece funcionar, mas derrota o objeto de usar a ligação de dados, não é?
Qualquer ajuda apreciada!