在WPF中,可以通过DataGrid控件来实现动态加载行。以下是实现的步骤:

  1. 定义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>
  1. 定义一个ObservableCollection类型的集合,用于存储数据。
private ObservableCollection<Person> persons = new ObservableCollection<Person>();
  1. 绑定数据源到DataGrid控件。
dgData.ItemsSource = persons;
  1. 动态添加行数据。
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; }
}
wpf实现动态加载行

原文地址: https://www.cveoy.top/t/topic/bjOx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录