如何在C#WPF中以编程方式创建数据网格?
如何在C#WPF中以编程方式创建数据网格? 根据用户的选择,我可以生成多个包含信息的数据网格 例如:如何在C#WPF中以编程方式创建数据网格?,c#,wpf,datagrid,C#,Wpf,Datagrid,如何在C#WPF中以编程方式创建数据网格? 根据用户的选择,我可以生成多个包含信息的数据网格 例如: if(true) { // Create a DataGrid programatically DataGrid DG = new DataGrid(); DG.ColumnHeader 1 = "Name" DG.ColumnHeader 2 = "Age" // Load info to the datagrid from somewhere // Add unde
if(true)
{
// Create a DataGrid programatically
DataGrid DG = new DataGrid();
DG.ColumnHeader 1 = "Name"
DG.ColumnHeader 2 = "Age"
// Load info to the datagrid from somewhere
// Add under Name column the name "Fred" and "Tom"
// Add under Age column "26" and "18"
DG.FieldNameColumn.Row1 = "Fred"
DG.Age.Row1 = "26"
DG.FieldNameColumn.Row2 = "Tom"
DG.Age.Row2 = " 18"
}
else
{
// dont generate a DG ( don't do anything here)
}
您熟悉MVVM吗?我建议以“正确”的方式进行操作,并创建一个关联的
ViewModel
,其中包含一个集合if项。然后,DataGrid
将绑定到该项集合
不过,为了回答您的问题,您可以通过以下方式实现您的目标:
private void Button_Click(object sender, RoutedEventArgs e)
{
var nameBinding = new Binding("Name")
{
Mode = BindingMode.Default,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
var ageBinding = new Binding("Age")
{
Mode = BindingMode.Default,
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
var dataGrid = new DataGrid();
dataGrid.Columns.Add(new DataGridTextColumn
{
Header = "Name",
Binding = nameBinding
});
dataGrid.Columns.Add(new DataGridTextColumn
{
Header = "Age",
Binding = ageBinding
});
dataGrid.ItemsSource = new ObservableCollection<Info>
{
new Info
{
Name = "Name 1",
Age = "100"
}
};
MainGrid.Children.Add(dataGrid);
}
public class Info
{
public string Name { get; set; }
public string Age { get; set; }
}
private void按钮\u单击(对象发送者,路由目标)
{
var nameBinding=新绑定(“名称”)
{
Mode=BindingMode.Default,
UpdateSourceTrigger=UpdateSourceTrigger.PropertyChanged
};
var ageBinding=新绑定(“年龄”)
{
Mode=BindingMode.Default,
UpdateSourceTrigger=UpdateSourceTrigger.PropertyChanged
};
var dataGrid=new dataGrid();
添加(新的DataGridTextColumn
{
Header=“Name”,
Binding=nameBinding
});
添加(新的DataGridTextColumn
{
Header=“年龄”,
绑定=年龄绑定
});
dataGrid.ItemsSource=新的ObservableCollection
{
新信息
{
Name=“Name 1”,
年龄=“100”
}
};
MainGrid.Children.Add(dataGrid);
}
公共类信息
{
公共字符串名称{get;set;}
公共字符串年龄{get;set;}
}
请注意
MainGrid
是您要将DataGrid
添加到的容器的名称。如果您这样做,用户控件如何知道您要将DG放置在何处?为什么不创建一个用户控件并控制网格的可见性呢?