<p>Eto.WinForms TreeItem com caixa de seleção?</p>

Criado em 11 dez. 2016  ·  6Comentários  ·  Fonte: picoe/Eto

Eu estava tentando adicionar um TreeItem com uma caixa de seleção a um TreeGrid, mas não encontrei nada.
Como obteria uma caixa de seleção ao lado dos itens de visualização em árvore?
Tom

help wanted

Todos 6 comentários

Eu recomendaria usar o TreeGridView em vez disso, que tem muito mais funcionalidade, como a capacidade de adicionar caixas de seleção.

Também estou trabalhando atualmente em uma série de coisas relacionadas ao TreeGridView para trazê-lo à paridade com o TreeView (caso este seja o motivo de você não o estar usando atualmente), como atualizar itens específicos e obter a coluna / item sob o ponteiro do mouse, o que deve ser feito dentro de uma semana ou mais.

control.Columns.Add(new GridColumn { DataCell = new CheckBoxCell(0), Editable =true }); control.Columns.Add(new GridColumn { DataCell = new TextBoxCell(1) });
Sim, tentei TreeGridView, mas não parece bom, porque o rótulo é uma segunda coluna.

No Mac, TreeView e TreeGridView é o mesmo. Parece que, em geral, devo mudar para TreeGridView. Avise-me quando terminar seu trabalho atual nisso.

Sim no Mac e Gtk o TreeView e TreeGridView usam o mesmo controle nativo.

Em WinForms e WPF, o controle de árvore integrado não oferece suporte a várias colunas, portanto, ele usa a grade de dados e simula a árvore gerenciando o estado do nó manualmente.

Quanto a fazer o TreeGridView nas janelas parecer melhor com uma caixa de seleção, podemos fazer algo como adicionar uma célula filha ao CheckBoxCell para seu conteúdo ou (provavelmente não é possível), mas permitir que cada coluna tenha várias células definidas.

Percebi vários bugs com o TreeGridView no WinForms:

  • exceção não tratada, ao definir DataStore para lista nula ou vazia
  • exceção não tratada, ao definir DataStore para uma nova Lista, que é menor que a anterior e SelectedItem é maior
  • exceção não tratada, ao acessar SelectedItems com AllowMultipleSelection = true
  • CheckBoxCellHandler.SetCellValue nunca chamado

No Mac isso funciona.
Tom

Esta página foi útil?
0 / 5 - 0 avaliações