none
Binding RRS feed

  • Pergunta

  • Salve galera!
    Não consigo entender como faço para ligar os controles a uma base de dados.
    Por exemplo tenho uma aplicação de teste que acessa o banco da dados sql.
    Este é o método retorna os dados do banco, este metodo é chamado quando eu clico em um botão:
    private DataTable CarregarLista()
            {
                  SqlConnection con = new SqlConnection(@"Data Source=HMT_EXT_450\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");
                DataTable tabela = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers", con);
                da.Fill(tabela);
                return tabela;
    }

    Criei uma grid e uma listbox apenas para visualizar os dados, mas não estou conseguindo. Não da erro, apenas não carrega
    a grid e nem a listbox.
    O que eu tenho que fazer? Como eu tenho que configurar os controles?

    Att;
    kristiano

    sexta-feira, 5 de junho de 2009 15:01

Respostas

  • Olá, Kristiano...


    Você está usando o Grid do Wpf Tool Kit lançado pelo CodePlex? Se não estiver aconselho vc a baixá-lo e usá-lo como padrão em suas aplicações.. para baixá-lo acesse: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047

    Quanto as configurações para fazê-lo funcionar são as seguintes: (Julgando o Grid do ToolKit)

    Binding Campo de Valor: SelectedValuePath
    Binding Campo de Exibição ( no caso de comboBox, ListBoxes e similares): sete a propriedade:   DisplayMemberPath=""

    No exemplo abaixo, eu setei apenas o campo de valor e criei as colunas customizadas...


     <StackPanel CanHorizontallyScroll="True" CanVerticallyScroll="True">
    <tool:DataGrid x:Name="dtgPesquisa" Width="Auto" Height="Auto"  AutoGenerateColumns="False CanUserReorderColumns="False"  SelectedValuePath="CARGO_ID" >
             <tool:DataGrid.Columns>
    <tool:DataGridTextColumn Binding="{Binding Path=CARGO_ID}" Header="Codigo" IsReadOnly="True" />
                            <tool:DataGridTextColumn Binding="{Binding Path=NOM_CARGO}" Header="Cargo" IsReadOnly="True" />
                            <tool:DataGridTextColumn Binding="{Binding Path=DAT_CRIACAO}" Header="Data Criação" IsReadOnly="True" />
                            <tool:DataGridTextColumn Binding="{Binding Path=DAT_ALTERACAO}" Header="Data Alteração" IsReadOnly="True" />
                            <tool:DataGridTextColumn Binding="{Binding Path=DAT_EXCLUSAO}" Header="Data Exclusão" IsReadOnly="True" />
                            <tool:DataGridTextColumn Binding="{Binding Path=USER_RESP}" Header="Usuário Resp" IsReadOnly="True" />
    </tool:DataGrid.Columns>
    </tool:DataGrid>
    </StackPanel>


    Para carregá-lo via código, basta vc preencher um dataTable de um DataSet e anexá-lo ao ItemSource:

     using (DataSetCargos dsCargos = new CargosCT().CargosListar(codigo))
     {
    dtgPesquisa.ItemsSource = dsCargos.cargos;
    }

    Espero ter ajudado, quaisquer coisas, posta aí, que a gente tenta resolver...

    Um abraço,

    Daniel Moreira

    (Não esqueça de marcar como resposta caso tenha sido útil!)


    sábado, 6 de junho de 2009 12:56