Open4
Avalonia.FuncUI.DSLでDataGridと格闘

DataGrid自体は利用できるのだけど、公式のコントロール紹介
にないのでいまいちわからん。
最小限のサンプルで試しても何も表示されないと思ったら、FluentThemeの場合、DataGridのStyleも読み込んでおかないと駄目みたい。
type App() =
inherit Application()
override this.Initialize() =
this.Styles.Add(FluentTheme())
this.Styles.Load "avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"

数値の列は桁区切りとかフォーマット指定して、右揃えにしたい。
DataGridTextColumn.create [
DataGridTextColumn.header "数量"
DataGridTextColumn.binding (
let binding = Binding "Quantity"
binding.StringFormat <- "{0:#,0.###}"
binding
)
DataGridTextColumn.cellTheme (
let theme = ControlTheme()
theme.TargetType <- typeof<DataGridCell>
theme.Setters.Add(
Setter(
DataGridCell.HorizontalAlignmentProperty,
HorizontalAlignment.Right
)
)
theme
)
]

(DataGridに限ったことではないが)Bindingのpathを文字列で指定していると、リファクタリングでレコードのフィールド名変えたときに追従モレするので、
type Item = { Name: string; Quantity: decimal }
let itemDummy = { Name = ""; Quantity = 0m }
// 前後は省略
DataGridTextColumn.binding (Binding(nameof itemDummy.Quantity))
こんな感じにしたほうが良いのかも。(ダミーのインスタンスが必要なのが微妙だけれど)