Jump to content

Problema com Datagrid que não grava os dados inseridos


Guest Mezz
 Share

Recommended Posts

Boa noite,

O problema é o seguinte, eu tenho uma datagrid que expõe uma list de objectos mas no entanto não deixa adicionar novos elementos nem realmente altera os dados quando edito na grid.

O meu novo problema é agora a datagrid não estar a guardar os dados inseridos.

public ObservableCollection<BolaInfo> bolas;
.
.
.
public IniciaSim()
	{
                  this.InitializeComponent();
                  this.bolas = new ObservableCollection<BolaInfo>();
                  bolas.Add(new BolaInfo(12, 25, 58, 73, 110));
                 }

private void Introduzir_Click(object sender, RoutedEventArgs e)
        {
            if (rendering)
            {
                plotCanvas.Children.Clear();
                CompositionTarget.Rendering -= RenderFrame;
                rendering = false;
            }

            DataGrid dados = new DataGrid();
            dados.Width = plotCanvas.ActualWidth;
            dados.Height = plotCanvas.ActualHeight;
            dados.ColumnWidth = 128;
            dados.IsReadOnly = false;            
            dados.IsEnabled = true;
            IEditableCollectionView EdView = dados.Items as IEditableCollectionView;
            //EdView.CanAddNew = true;
            //EdView.CanCancelEdit = true;
            //EdView.CanRemove = true;
            dados.AutoGenerateColumns = true;
            dados.CanUserResizeColumns = false;
            dados.CanUserReorderColumns = false;
            dados.CanUserAddRows = true;
            dados.CanUserDeleteRows = true;
            dados.ItemsSource = bolas;

           plotCanvas.Children.Add(dados);
         }

Ao colocar um breakpoint na linha "dados.CanUserAddRows = true;" ele muda o valor para false. Porquê gostava eu de saber e porque não me está guardar automaticamente as edições feitas (visto que o delete está a funcionar correctamente).

Cumprimentos

Link to comment
Share on other sites

Eu acho que isto não está bem:

  IEditableCollectionView EdView = dados.Items as IEditableCollectionView;

  EdView.CanAddNew = true;

  EdView.CanCancelEdit = true;

  EdView.CanRemove = true;

deve ser:

  dados.CanAddNew = true;

  dados.CanCancelEdit = true;

  dados.CanRemove = true;

Link to comment
Share on other sites

Jà tinha visto e já resolvi parte do problema, a class a qual está associada  a observable collection não podia ter um constructor com argumentos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.