第18章-WPF平台集成

第十八章:WPF平台集成

18.1 WPF项目配置

18.1.1 安装WPF版本

# NuGet包管理器
Install-Package unvell.ReoGrid.WPF

# .NET CLI
dotnet add package unvell.ReoGrid.WPF

18.1.2 XAML配置

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:rg="clr-namespace:unvell.ReoGrid.WPF;assembly=unvell.ReoGrid.WPF"
        Title="ReoGrid WPF Demo" Height="600" Width="800">
    <Grid>
        <rg:WorksheetControl x:Name="worksheetControl"/>
    </Grid>
</Window>

18.2 WPF数据绑定

using unvell.ReoGrid;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        InitializeWorksheet();
    }
    
    private void InitializeWorksheet()
    {
        var worksheet = worksheetControl.Worksheet;
        
        // 设置数据
        worksheet["A1"] = "姓名";
        worksheet["B1"] = "年龄";
        worksheet["C1"] = "部门";
        
        // 设置样式
        worksheet.SetRangeStyles("A1:C1", new WorksheetRangeStyle
        {
            Flag = PlainStyleFlag.FontBold | PlainStyleFlag.BackColor,
            Bold = true,
            BackColor = System.Windows.Media.Colors.LightBlue.ToGdiColor()
        });
    }
}

18.3 MVVM模式集成

public class WorksheetViewModel : INotifyPropertyChanged
{
    private Worksheet worksheet;
    
    public Worksheet Worksheet
    {
        get => worksheet;
        set
        {
            worksheet = value;
            OnPropertyChanged(nameof(Worksheet));
        }
    }
    
    public ICommand LoadDataCommand { get; }
    public ICommand SaveDataCommand { get; }
    
    public WorksheetViewModel()
    {
        LoadDataCommand = new RelayCommand(LoadData);
        SaveDataCommand = new RelayCommand(SaveData);
    }
    
    private void LoadData()
    {
        // 加载数据逻辑
    }
    
    private void SaveData()
    {
        // 保存数据逻辑
    }
    
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

18.4 WPF样式和主题

<Window.Resources>
    <Style TargetType="{x:Type rg:WorksheetControl}">
        <Setter Property="Background" Value="White"/>
        <Setter Property="BorderBrush" Value="Gray"/>
        <Setter Property="BorderThickness" Value="1"/>
    </Style>
</Window.Resources>

18.5 本章小结

本章介绍了ReoGrid在WPF平台的集成方法。

📚 下一章预告

第十九章将学习高级应用与扩展。

posted @ 2025-12-31 14:07  我才是银古  阅读(19)  评论(0)    收藏  举报