在 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,可以很容易地更新数据源,并在界面上实时显示最新数据。 |