2012-03-06 56 views
0

我有在獲得網格工作的煩惱:Datagrid中不保存更改用戶適用

我希望讓用戶添加行,但是當程序被編譯CanUserAddRows設置爲false。 - 已解決

我面臨的另一個問題是,當用戶編輯網格時,它沒有應用已更改的內容;雖然刪除工作正常。

我該如何解決這個問題?

public ObservableCollection<BolaInfo> bolas; 
public IniciaSim() 
{ 
    this.InitializeComponent(); 
    this.bolas = new ObservableCollection<BolaInfo>(); 
} 

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; 
    dados.AutoGenerateColumns = true; 
    dados.CanUserResizeColumns = false; 
    dados.CanUserReorderColumns = false; 
    dados.CanUserAddRows = true; 
    dados.CanUserDeleteRows = true; 
    dados.ItemsSource = bolas; 
} 

回答

1

檢查BolaInfo類是否具有不帶參數的構造函數。我認爲你只能自動添加行,如果類可以創建一個沒有參數的新實例。

+0

那麼問題的第一部分就解決了,現在我遇到了未提交網格中引入的數據的問題。 – CMCB 2012-03-06 15:19:12

+0

我不得不說的是一些情況Binding Mode = TwoWay列綁定,但我沒有使用AutoGenerateColumns。 – mslliviu 2012-03-07 07:27:42

+0

事情是我爲用戶輸入使用數據網格,但只想限制兩個值。如果我使用TwoWay並只聲明我希望用戶使用的兩個字段,它不會自動設置其他值,所以現在我使用AutoGenerateColumns,因爲我繞過另一個問題而不是與網格有關。我修復了一個問題,我找到另一個問題了。 – CMCB 2012-03-07 08:00:16