在 WinUI 3 中,我想在具有相同列定义的页面上创建两个
DataGrid
。基本上以下两个具有不同的 ItemsSource
值但引用相同类型的数据。 (并且有 20 多列,因此我只想在一个地方定义列。)
<controls:DataGrid AutoGenerateColumns="False"
ItemsSource="{x:Bind ViewModel.Things}">
<controls:DataGrid.Columns>
<controls:DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<controls:DataGridTextColumn Header="Description" Binding="{Binding Description}"/>
</controls:DataGrid.Columns>
</controls:DataGrid>
我试过为模板创建一个
Page.Resource
,沿着这些线:
<Page.Resources>
<ControlTemplate x:Key="test">
<controls:DataGrid>
<controls:DataGrid.Columns>
<controls:DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<controls:DataGridTextColumn Header="Description" Binding="{Binding Description}"/>
</controls:DataGrid.Columns>
</controls:DataGrid>
</ControlTemplate>
</Page.Resources>
如下引用它(我唯一能找到引用它的地方是
Template
属性。这需要引用ControlTemplate
):
<controls:DataGrid AutoGenerateColumns="False"
ItemsSource="{x:Bind ViewModel.Things}"
Template="{StaticResource test}">
</controls:DataGrid>
有了这个,
DataGrid
显示列标题,但没有数据。
需要创建什么资源,如何引用?