首先,需要安装 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

AvaloniaUI 的DataGrid 写一份例子

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

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