C# 我可以从数据模板获取WPF网格中的标题行吗?

C# 我可以从数据模板获取WPF网格中的标题行吗?,c#,wpf,xaml,C#,Wpf,Xaml,我正在使用彼此上方的网格实现一个标题表,因此我可以指定列标题。标题有一个网格,表中每行有一个网格。这是不太实际的,标题宽度必须指定两次。也许我可以使用ListView/DataGrid而不需要所有样式 如何摆脱这种多重网格方法 以下是我得到的: 您可以使用附加属性 <StackPanel Orientation="Vertical" Grid.IsSharedSizeScope="True"> <Grid Margin="0, 10, 0, 0"> <

我正在使用彼此上方的网格实现一个标题表,因此我可以指定列标题。标题有一个网格,表中每行有一个网格。这是不太实际的,标题宽度必须指定两次。也许我可以使用ListView/DataGrid而不需要所有样式

如何摆脱这种多重网格方法

以下是我得到的:


您可以使用附加属性

<StackPanel Orientation="Vertical" Grid.IsSharedSizeScope="True">
  <Grid Margin="0, 10, 0, 0">
    <Grid.ColumnDefinitions>
      <ColumnDefinition SharedSizeGroup="First" Width="40" />
      <ColumnDefinition SharedSizeGroup="Second" Width="70" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Grid.Column="0" Grid.Row="0"
            Text="header 1" />
    <TextBlock Grid.Column="1" Grid.Row="0"
            Text="header 2" />
  </Grid>
  <ItemsControl ItemsSource="{Binding Entities}">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <StackPanel Orientation="Vertical">
          <Grid Margin="0, 10, 0, 0">
            <Grid.ColumnDefinitions>
              <ColumnDefinition SharedSizeGroup="First" />
              <ColumnDefinition SharedSizeGroup="Second" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
              <RowDefinition />
            </Grid.RowDefinitions>
            <TextBlock Grid.Column="0" Grid.Row="0"
               Text="{Binding Property1}" />
            <TextBlock Grid.Column="1" Grid.Row="0"
               Text="{Binding Property2}" />
          </Grid>
        </StackPanel>
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
</StackPanel>


不起作用,我尝试了SharedSizeGroup=“a”,SharedSizeGroup=“b”等,我只在第一组列定义中指定了宽度。也许使用多个网格也是一种黑客行为。@AndersLindén:我的错误:你必须将Grid.IsSharedSizeScope=“True”作为StackPanel的属性,我让它工作了,似乎我必须处理多个网格,谢谢!将宽度设置为“*”也是一种使宽度动态的方法,如果有一些边距也很好。。。