Boa tarde de novo.

Bom estou tendo uma situação complicada no dataGrid do WPF, como eu posso montar um, baseado em uma lista, porem cada linha irá ter um checkbox que o usuário pode marcar e depois de clicar no botão de enviar, vou percorrer o grid procurando os checkbox marcados, os que estiveram marcado, recupero o Id que está contido no mesmo, pois é uma referencia que será usada em uma outra consulta.

Montei o meu grid como está em anexo.

Outro detalhe que ocorre, é que se for clicado 2 vezes seguido sobre o mesmo, a app para de responder e fecha.

Exibições: 300

Anexos

Respostas a este tópico

Se vc quizer pegar somente um cara do grid é só colocar no seu DataGrid no XAML o SelectionMode="Single" e também adiciona esse cara aqui SelectionChanged="dgColunaEsquerda_SelectionChanged" e nas suas DataGridTextColumn adicione esse cara:IsReadOnly="True". Ai no seu código vc adiciona o
private void dgColunaEsquerda_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{ // AplicacoesWPF.Negocio.Cadastro classede negócio onde tenho as propriedades da minha consulta
id = ((AplicacoesWPF.Negocio.Cadastro)(((object[])(e.AddedItems))[0])).Id;
}
catch
{
//MessageBox.Show("Erro ao tentar selecionar um arquivo no grid!", "Aviso", MessageBoxButton.OK, MessageBoxImage.Error);
}

}

*Creio que isso funciona e vc nem precisa colocar um checkBox no seu grid.Depois fala se funfou

olha, eu criaria um template, pra personalizar o seu datagrid, onde o item seria o checkbox mais a informação útil que vc tem.

Ao invés de percorrer a lista pra encontrar os marcados, eu faria diferente, no evento check do checkbox, eu adicionaria o item selecionado a uma lista genérica (List<T>), e depois bastaria processar a lista para o envio.

Ao selecionar o item, já faz o cast para o objeto, exemplo: se cada item for um objeto de uma classe MyClass, no evento, vc faz o cast do selected.item p/ MyClass, e terá uma lista: List<MyClass> objLista.

basta instanciar a lista e a cada check: objLista.add(objSelecionado);

quanto ao bug de travar a app, deve ser alguma referência nula, ou a mudança de status de selected, que faz perder a referência na hora de processar, então vc deve tratar a exceção e depurar pra ver o que ocorre e tratar adequadamente.

Dê uma pesquisada sobre templates, data templates, que achará coisas interessantes.

RSS

© 2017   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço