2016-09-21 43 views
0

我要插入一些記錄到DataGrid GRID1這是Child1用戶控件插入DataGrid的記錄,我想填補這一數據柵格記錄從另一個用戶控制CHILD2如何從另一個用戶控制

我的代碼上點擊作爲下面,

public void cmbEventReceiver_SelectionChanged (object sender, SelectionChangedEventArgs e) 
{ 
    ComboBoxItem typeItem = (ComboBoxItem)cmbEventReceiver.SelectedItem; 

    if (contentTypeDataControl.dtEventReceivers.Rows.Count==0) 
    { 
     contentTypeDataControl.dtEventReceivers.Columns.Add("ID"); 
     contentTypeDataControl.dtEventReceivers.Columns.Add("Name"); 
    }   

    contentTypeDataControl.dtEventReceivers.Rows.Add(new Object[] { typeItem.Tag, typeItem.Content }); 
    contentTypeDataControl.dtEventReceivers.AcceptChanges(); 

    // contentTypeDataControl.grdEventReferences.ItemsSource = contentTypeDataControl.dtEventReceivers.DefaultView; 
    //contentTypeDataControl.grdEventReferences.Items.Add(new Object[] { typeItem.Tag, typeItem.Content }); 
    contentTypeDataControl.FillDataGridEventReceiver(contentTypeDataControl.dtEventReceivers); 
    contentTypeDataControl.ppFieldReference.IsOpen = false; 
    contentTypeDataControl.wrapPanel.Children.RemoveAt(1); 
    contentTypeDataControl.wrapPanel.Focus();    
} 

public void FillDataGridEventReceiver(DataTable dt) 
{ 
    grdEventReferences.ItemsSource = dt.DefaultView; 
} 

但它沒有顯示任何東西在我的網格。

回答

0

我認爲這是一個正確的數據綁定問題。

,作爲一個DataGrid一個簡單的例子,結合我會用以下結構:

viewmodel.cs

public class MyViewModel { 
    public ObservableCollection<MyGridObject> GridItems {get; set;} 

    public void OnSomethingHappens(MyGridObject newObjectToAdd){ 
     GridItems.Add(newObjectToAdd); 
    } 
} 

public class MyGridObject { 
    public int ID {get; set;} 
    public string Name {get; set;} 
} 

你的模型應該是這樣的:

<DataGrid ItemsSource="{Binding GridItems}" /> 

那一路處理WPF中的數據。不要試圖直接從代碼隱藏中操作控件。如果你喜歡這樣做,你應該使用WinForms。

+0

我同意@Fabian。用戶控件與您的數據綁定無關。你只需要在Viewmodel中更新你的數據源。 – Sebi

相關問題