WinUI3のDataGridで表を作りたい。
DataGridはWindows Community Toolkitに含まれている。(WinAppSDKの元にはない)
https://github.com/CommunityToolkit/WindowsCommunityToolkit
Windows Community Toolkitの7.1.2が、WinAppSDKの1.0をサポートしているらしい。
https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-for-project-reunion-0-5/
昔は、名前空間が「Microsoft.Toolkit.Uwp.*」だったのが、
WinUI3対応のために「CommunityToolkit.WinUI.*」になった。
???
CommunityToolkitは、「.NET Community Toolkit」に移行しようとしている??
2021/12/1時点で、CommunityToolkitの7.1.2がでて、これが最後になる??
最後のリリース?
https://github.com/CommunityToolkit/WindowsCommunityToolkit/releases/tag/winui-7.1.2
今後はこっち?
https://github.com/CommunityToolkit/dotnet
でも、CommunityToolkit Sample Appでは、UWP向けだが7.1.3も出てるとある。よくわからん、、、
下記ページが、WinUI3のDataGridの使い方としてはよさそう。
https://devlog.grapecity.co.jp/winui-3-datagrid-1/
やってみたら何となく動きはしたが、上のp-時にあるようなサンプルコードに、MSの公式のどこでたどり着けるのか??
<Window x:Class="DataGridTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:DataGridTest" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls" mc:Ignorable="d"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <controls:DataGrid x:Name="WinUI3DataGrid" /> </StackPanel> </Window>
using Microsoft.UI.Xaml; using System.Collections.Generic; namespace DataGridTest { public sealed partial class MainWindow : Window { List<MyData> DataList { get; set; } = new List<MyData>(); public MainWindow() { this.InitializeComponent(); DataList.Add(new MyData("1", "AAA")); DataList.Add(new MyData("2", "BBBB")); DataList.Add(new MyData("3", "CCCCC")); WinUI3DataGrid.ItemsSource = DataList; } } public record MyData(string Name, string Value); }
結果
上で見た「CommunityToolkit/WindowsCommunityToolkit」のリポジトリの、 mainではなく「rel/winui7.1.2」ブランチに、WinUI3用っぽいコード一式があった。
https://github.com/CommunityToolkit/WindowsCommunityToolkit/tree/rel/winui/7.1.2
最終的に
「CommunityToolkit.WinUI.UI.Controls」を使うことにした。
今回はテストツールのために使ったので凝った見た目にしたりはしてないが、普通に表として使う分には十分だった。
https://github.com/CommunityToolkit/WindowsCommunityToolkit
の「rel/winui7.1.2」ブランチに該当。