在 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]