Usuário com melhor resposta
Combobox no WPF e DataSet

Pergunta
-
Preciso muito de ajuda, sou iniciante na programação e em wpf. Depois de várias tentativas indo já para a 3 semana sem muitos resultados, decidi pedir ajuda.
Preciso de um Combobox em WPF que liste os itens (CREDITO/DEBITO). Quando selecionar CREDITO é preciso que grave na tabela FLXCONTROLGERAL no campo inteiro TPFLXCONTROLGERAL o código 1 e quando selecionar DEBITO grave o código 2.
--------------------------
Abaixo o código do DataSet:
private ProjetosDBDataSet dsFlxControlGeral = new ProjetosDBDataSet();
private ProjetosDBDataSetTableAdapters.FLXCONTROLGERALTableAdapter taFlxControlGeral = new ProjetosDBDataSetTableAdapters.FLXCONTROLGERALTableAdapter();
private ProjetosDBDataSetTableAdapters.TableAdapterManager tamFlxControlGeral = new ProjetosDBDataSetTableAdapters.TableAdapterManager();
private CollectionView view;--------------------------
No Xaml:
<ComboBox Canvas.Left="61" Canvas.Top="39" Height="23" Width="120" x:Name="cmbTipo"
DisplayMemberPath="TpFlxControlGeralNome"
SelectedValuePath="TpFlxControlGeralID"
SelectedValue="{Binding Source={StaticResource dataProvider}, Path=TipoCode}"
Text="{Binding TipoFluxoControlGeralClasse, ElementName=cmbTipo, Path=TPFLXCONTROLGERAL}"/>
<Label Canvas.Left="183" Canvas.Top="39" Content="Data" Height="29" Name="label3" />
<TextBox Canvas.Left="222" Canvas.Top="39" Height="23" Name="txtData" Width="107" Text="{Binding Path=DATA}"/>-------------------------------------------------
Obs: No TexBox o valor digitado é gravado, mas no combobox não consigo. Desde já agradeço.
Respostas
-
Depois de muitas tentativas mas Graças a DEUS consegui encontrar a solução, deixo abaixo a solução se alguém vier a passar pelo mesmo problema. Antes quero agradecer também a Ucha pela sua dica.
Sobre o problema, tenho o campo TPFLXCONTROLGERAL e preciso salvar o código TPFLXCONTROLGRLID selecionado no combobox neste campo
Segue o código com a solução funcionando:
No xaml:
<ComboBox x:Name="cmbTipo" Grid.Row="2" Grid.Column="1"
IsEditable="False"
Height="23" Width="120"
SelectedValue="{Binding Path=TPFLXCONTROLGERAL}"====> Este é o campo que deve receber o valor
DisplayMemberPath="TpFlxControlGeralNome"===> Está é a descrição que deverá aparecer no ComboBox
SelectedValuePath="TpFlxControlGeralID">===> Este é o ID que será gravado no campo acima descrito no SelectedValue
</ComboBox>
No código em C#:
private List<TipoFluxoControlGeralClasse> GetTipoFluxoControlGeralClasse()
{
List<TipoFluxoControlGeralClasse> tipoFluxoControlGeralClasse = new List<TipoFluxoControlGeralClasse>();
tipoFluxoControlGeralClasse.Add(new TipoFluxoControlGeralClasse() { TpFlxControlGeralID = 1, TpFlxControlGeralNome = "CREDITO" });
tipoFluxoControlGeralClasse.Add(new TipoFluxoControlGeralClasse() { TpFlxControlGeralID = 2, TpFlxControlGeralNome = "DEBITO" });
return tipoFluxoControlGeralClasse;
}Espero ajudar com a solução acima se alguém estiver passando pelo mesmo problema.
- Marcado como Resposta FernandoGGarcia terça-feira, 11 de setembro de 2012 14:51
Todas as Respostas
-
-
Ucha eu fiz o que você me falou, mas não deu certo. Quando o formulário é carregado monta o combobox com os itens CREDITO e DEBITO, quando seleciona CREDITO no combobox deve gravar num campo INTEIRO o código 1 (campo: TPFLXCONTROLGERAL), quando seleciona DEBITO o codigo 2 deve ser gravado. E também ao mudar de registro deve aparecer na tela CREDITO ou DEBITO conforme o que foi gravado no registro e se o campo estiver vazio no combobox também não deve ter nada. Acredito que a solução esteja no xaml (alguma ligação do componente com o DataSet dsFlxControlGeral), mas não consigo encontrar a solução. Precisava de um exemplo, pois sou muito novato. Sem mais agradeço desde já.
-
Depois de muitas tentativas mas Graças a DEUS consegui encontrar a solução, deixo abaixo a solução se alguém vier a passar pelo mesmo problema. Antes quero agradecer também a Ucha pela sua dica.
Sobre o problema, tenho o campo TPFLXCONTROLGERAL e preciso salvar o código TPFLXCONTROLGRLID selecionado no combobox neste campo
Segue o código com a solução funcionando:
No xaml:
<ComboBox x:Name="cmbTipo" Grid.Row="2" Grid.Column="1"
IsEditable="False"
Height="23" Width="120"
SelectedValue="{Binding Path=TPFLXCONTROLGERAL}"====> Este é o campo que deve receber o valor
DisplayMemberPath="TpFlxControlGeralNome"===> Está é a descrição que deverá aparecer no ComboBox
SelectedValuePath="TpFlxControlGeralID">===> Este é o ID que será gravado no campo acima descrito no SelectedValue
</ComboBox>
No código em C#:
private List<TipoFluxoControlGeralClasse> GetTipoFluxoControlGeralClasse()
{
List<TipoFluxoControlGeralClasse> tipoFluxoControlGeralClasse = new List<TipoFluxoControlGeralClasse>();
tipoFluxoControlGeralClasse.Add(new TipoFluxoControlGeralClasse() { TpFlxControlGeralID = 1, TpFlxControlGeralNome = "CREDITO" });
tipoFluxoControlGeralClasse.Add(new TipoFluxoControlGeralClasse() { TpFlxControlGeralID = 2, TpFlxControlGeralNome = "DEBITO" });
return tipoFluxoControlGeralClasse;
}Espero ajudar com a solução acima se alguém estiver passando pelo mesmo problema.
- Marcado como Resposta FernandoGGarcia terça-feira, 11 de setembro de 2012 14:51