2016-10-31 29 views
0

在一个XAML窗口中,我有两个不同的ItemsControls,用于不同的ViewModelsItemsControls都有网格,其中第一列应该是相同的宽度。现在我有以下,但网格只是独立管理它们的大小。我想要第一列是相同的宽度。这是我的XAML绑定来自两个项目模板的栅格列宽

<TabControl> 
    <TabItem Header="x"> 
    <Grid Grid.IsSharedSizeScope="True"> 
     <Grid.RowDefinitions> 
     <RowDefinition Height="auto"/> 
     <RowDefinition Height="auto"/> 
     </Grid.RowDefinitions> 
     <Grid Margin="10" Grid.Row="0" Grid.IsSharedSizeScope="True"> 
     <ItemsControl Name="inputs1" Grid.IsSharedSizeScope="True"> 
      <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid > 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="auto" SharedSizeGroup="1" /> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <TextBlock VerticalAlignment="Center" Text="{Binding Description}" /> 
       </Grid> 
      </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
     </Grid> 

     <Grid Margin="10" Grid.Row="1" Grid.IsSharedSizeScope="True"> 
     <ItemsControl Name="inputs2" Grid.IsSharedSizeScope="True"> 
      <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid Margin="0,0,0,5"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition SharedSizeGroup="1" /> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <TextBlock VerticalAlignment="Center" Text="{Binding Description}" /> 
       </Grid> 
      </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
     </Grid> 
    </Grid> 
    </TabItem> 
</TabControl> 

它们具有相同的sharedsizegroup所以他们应该是平等的吗? 结果现在:https://gyazo.com/2284485127427673269dfd8e26e42682

+0

在包含两个网格的父控件上是否有Grid.IsSharedSizeScope =“True”? – grek40

+0

祝你好运找到答案。目前,pastebin被代理拦截。此外,它很容易:创建一个[MCVE](http://stackoverflow.com/help/mcve),然后它将适合您的问题,它会很小,以便人们真正有动力来帮助您。 – grek40

+0

@ grek40做了一个更新,尽可能缩小完整的代码,希望可以帮助! :) – Markinson

回答

2

删除所有Grid.IsSharedSizeScope="True"属性在较低层次级别,并只保留在跨越所有涉及的网格的控件。看起来,对于这些属性中的每一个,都会打开一个新的共享范围,因此忽略更高级别的范围(尽管我无法从文档中真正阅读它)。

相关问题