wpf实现动态加载行
在WPF中,可以通过DataGrid控件来实现动态加载行。以下是实现的步骤:
- 定义DataGrid控件,并设置AutoGenerateColumns为False,以便手动定义列。
<DataGrid x:Name="dgData" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
- 定义一个ObservableCollection
类型的集合,用于存储数据。
private ObservableCollection<Person> persons = new ObservableCollection<Person>();
- 绑定数据源到DataGrid控件。
dgData.ItemsSource = persons;
- 动态添加行数据。
Person p = new Person() { Name = "Tom", Age = 30 };
persons.Add(p);
完整的示例代码如下:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid x:Name="dgData" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
public partial class MainWindow : Window
{
private ObservableCollection<Person> persons = new ObservableCollection<Person>();
public MainWindow()
{
InitializeComponent();
dgData.ItemsSource = persons;
Person p1 = new Person() { Name = "Tom", Age = 30 };
Person p2 = new Person() { Name = "Jerry", Age = 25 };
persons.Add(p1);
persons.Add(p2);
}
private void btnAddRow_Click(object sender, RoutedEventArgs e)
{
Person p = new Person() { Name = "John", Age = 40 };
persons.Add(p);
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
原文地址: https://www.cveoy.top/t/topic/bjOx 著作权归作者所有。请勿转载和采集!