shiy720 发表于 2024-6-5 09:31:17

在 WPF 中,如果实时更新 GridView(或者称为 DataGrid)的数据

在 WPF 中,如果想要实时更新 GridView(或者称为 DataGrid)的数据,可以考虑使用绑定的方式,并且在数据源发生变化时通知界面更新。以下是一个简单的示例代码,演示如何实时更新 GridView 的数据:假设你有一个 ViewModel 如下:using System.Collections.ObjectModel;
using System.ComponentModel;

public class MainViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private ObservableCollection<MyData> _dataList;
    public ObservableCollection<MyData> DataList
    {
      get { return _dataList; }
      set
      {
            _dataList = value;
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(DataList));
      }
    }

    public MainViewModel()
    {
      // 初始化数据
      DataList = new ObservableCollection<MyData>
      {
            new MyData {Id = 1, Name = "Alice"},
            new MyData {Id = 2, Name = "Bob"},
            new MyData {Id = 3, Name = "Charlie"}
      };
    }

    public void UpdateData()
    {
      // 模拟数据更新
      DataList.Add(new MyData { Id = 4, Name = "David" });
    }
}

创建一个简单的数据模型 MyData:
public class MyData
{
    public int Id { get; set; }
    public string Name { get; set; }
}
在你的 WPF 界面(例如 MainWindow.xaml),你可以使用 DataGrid 绑定到 ViewModel 中的 DataList,同时提供一个按钮来实时更新数据:
<Window x:Class="YourNamespace.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:local="clr-namespace:YourNamespace"
      mc:Ignorable="d"
      Title="MainWindow" Height="450" Width="800">
    <Grid>
      <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
      </Grid.RowDefinitions>

      <DataGrid ItemsSource="{Binding DataList}" AutoGenerateColumns="True"/>
      <Button Grid.Row="1" Content="Update Data" Click="UpdateData_Click"/>
    </Grid>
</Window>
在 MainWindow.xaml.cs 中,确保设置窗口的 DataContext,并处理更新按钮的点击事件:

public partial class MainWindow : Window
{
    public MainViewModel ViewModel { get; set; }

    public MainWindow()
    {
      InitializeComponent();
      
      ViewModel = new MainViewModel();
      DataContext = ViewModel;
    }

    private void UpdateData_Click(object sender, RoutedEventArgs e)
    {
      ViewModel.UpdateData();
    }
}以上代码演示了如何在 WPF 中实现实时更新 GridView 的数据。通过使用绑定和 ViewModel,可以很容易地更新数据源,并在界面上实时显示最新数据。
页: [1]
查看完整版本: 在 WPF 中,如果实时更新 GridView(或者称为 DataGrid)的数据