繁体   English   中英

如何从另一个用户控件插入DataGrid记录

[英]How to Insert DataGrid Record from another User Control

我想将一些记录插入到Child1用户控件中的DataGrid grid1中,并且我想从另一个用户控件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;
}

但这并没有在我的网格中显示任何内容。

我认为这是正确的数据绑定中的问题。

作为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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM