我想将一些记录插入到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;
}
但是我的网格中没有显示任何内容。
答案 0 :(得分: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。