DataGrid в пользовательском интерфейсе Avalonia для Linux не отображается во время работы приложения

Я использую пользовательский интерфейс Avalonia на .NET Core для Linux (Fedora). Я следовал этому руководству для DataGrid. , но, честно говоря, я добавил пакет с помощью следующей команды вместо того, чтобы вручную обновлять файл .csproj.

dotnet add package Avalonia.Controls.DataGrid

После dotnet restore и dotnet run я не вижу DataGrid. В любом случае xaml

<StackPanel>
    <DataGrid AutoGenerateColumns="True" Items="{Binding People}"/>
</StackPanel>

и ViewModel выглядят нормально.

    public ObservableCollection<Person> People { get; }

    public MainWindowViewModel()
    {
        People = new ObservableCollection<Person>(GenerateMockPeopleTable());
    }

Как я могу найти, что идет не так?


person Giulio    schedule 25.04.2020    source источник


Ответы (1)


Я забыл применить стиль DataGrid в App.xaml (потому что я привык к WPF в Windows, где DataGrid является стандартным элементом управления):

    <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml"/>

В руководстве этот шаг четко описан, поэтому в Заключение Я только изменил способ добавления пакета в проект, чтобы получить последнюю версию ссылки на пакет.

  <ItemGroup>
    <PackageReference Include="Avalonia" Version="0.9.9" />
    <PackageReference Include="Avalonia.Controls.DataGrid" Version="0.9.9" />
    <PackageReference Include="Avalonia.Desktop" Version="0.9.9" />
    <PackageReference Include="Avalonia.ReactiveUI" Version="0.9.9" />
  </ItemGroup>

Помимо номера версии, который, очевидно, меняется со временем, я могу подтвердить, что в вышеупомянутом руководстве все идеально.

person Giulio    schedule 25.04.2020