AvaloniaUI 的DataGrid 写一份例子
首先,需要安装 AvaloniaUI 的 NuGet 包。在 Visual Studio 中,右键单击项目,然后选择“管理 NuGet 包”。在搜索框中输入“Avalonia”,然后安装 Avalonia 和 Avalonia.Controls.DataGrid。
接下来,在 XAML 文件中添加 DataGrid 控件:
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls"
xmlns:data="clr-namespace:Avalonia.Controls.DataGrid;assembly=Avalonia.Controls.DataGrid"
x:Class="MyApp.MainWindow"
Title="DataGrid Example">
<controls:StackPanel>
<data:DataGrid x:Name="MyDataGrid"
AutoGenerateColumns="False"
Items="{Binding MyItems}"
SelectionMode="Single"
ColumnWidth="*">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*" />
<data:DataGridTextColumn Header="Age" Binding="{Binding Age}" Width="*" />
</data:DataGrid.Columns>
</data:DataGrid>
</controls:StackPanel>
</Window>
在代码中,需要创建一个 ViewModel,并将其绑定到 DataGrid 的 Items 属性:
using System.Collections.ObjectModel;
namespace MyApp
{
public class MainWindowViewModel : ViewModelBase
{
private ObservableCollection<Person> _myItems;
public ObservableCollection<Person> MyItems
{
get => _myItems;
set => this.RaiseAndSetIfChanged(ref _myItems, value);
}
public MainWindowViewModel()
{
MyItems = new ObservableCollection<Person>
{
new Person { Name = "John", Age = 25 },
new Person { Name = "Jane", Age = 30 },
new Person { Name = "Bob", Age = 40 }
};
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
最后,在窗口的构造函数中,将 ViewModel 实例绑定到 DataContext:
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace MyApp
{
public class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}
现在可以运行应用程序,看到一个包含三个人的 DataGrid。可以通过修改 ViewModel 中的 MyItems 属性来动态更新 DataGrid
原文地址: https://www.cveoy.top/t/topic/fIpG 著作权归作者所有。请勿转载和采集!