У меня есть следующая настройка: я отображаю элементы Winui3 из библиотеки класса C# в приложении Win32 C ++ с использованием островов XAML, контроль, который я хочу использовать, является сообществом toolkit.winui.ui.controls DataGrid, но это доступно только для C#, который мне нужно использовать C# Class. : < /p>
public static int ShowWindow(nint args, int sizeBytes)
#pragma warning restore IDE0060 // Remove unused parameter
{
// Initialize WinAppSDK 1.6 or 1.7
if (!Bootstrap.TryInitialize(0x00010007, string.Empty, new PackageVersion(), Bootstrap.InitializeOptions.None, out var hr) &&
!Bootstrap.TryInitialize(0x00010006, string.Empty, new PackageVersion(), Bootstrap.InitializeOptions.OnNoMatch_ShowUI, out hr))
return hr;
if (_app == null)
{
_app = new DummyApp(); // Optional: enables WinUI 3 styles
DispatcherQueueController.CreateOnCurrentThread();
}
var _source = new DesktopWindowXamlSource();
_source.Initialize(Win32Interop.GetWindowIdFromWindow(args));
var window = new Microsoft.UI.Xaml.Window();
var sampleData = new List
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 35 }
};
var dataGrid = new CommunityToolkit.WinUI.UI.Controls.DataGrid
{
AutoGenerateColumns = true,
ItemsSource = sampleData,
Margin = new Thickness(20)
};
var grid = new Microsoft.UI.Xaml.Controls.Grid
{
Background = new Microsoft.UI.Xaml.Media.SolidColorBrush(Microsoft.UI.Colors.White)
};
grid.Children.Add(dataGrid);
window.Content = grid;
window.Activate();
return 0;
}
< /code>
он компилирует и работает за исключением того, что DataGrid не отображается, окно, которое я создаю, пустое, тот же код работает и правильно отображает DataGrid, если я сделаю это в C# winui3. Есть идеи почему?
Проект здесь.
Подробнее здесь: https://stackoverflow.com/questions/797 ... sland-from