2012-06-28 25 views
3

我在Windows 8 Metro应用使用分组GridView,我有一个ItemsPanelTemplateVariableSizedWrapGrid,并且要绑定的MaximumRowsOrColumns属性,但它是不正确的结合。XAML Windows 8的Metro应用,结合问题

这是我的XAML

<GridView ItemsSource="{Binding Source={StaticResource groupeddata}}" > 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid Width="120" Height="150" > 
       <!--some controls here binded correctly.--> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
    <GridView.GroupStyle> 
     <GroupStyle> 
      <GroupStyle.HeaderTemplate> 
       <DataTemplate> 
        <Grid Margin="1,0,0,6"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding maxGridCoulmns}"></TextBlock> 
          <!--work ok here --> 
          <TextBlock Foreground="Black" Padding="0,0,0,20" Text="{Binding headerText}" /> 
         </StackPanel> 
        </Grid> 
       </DataTemplate> 
      </GroupStyle.HeaderTemplate> 
      <GroupStyle.Panel > 
       <ItemsPanelTemplate> 
        <VariableSizedWrapGrid Orientation="Horizontal" MaximumRowsOrColumns="{Binding maxGridCoulmns}" Margin="0,0,80,0"/> 
        <!--not binding here -->       
       </ItemsPanelTemplate> 
      </GroupStyle.Panel> 
     </GroupStyle> 
    </GridView.GroupStyle> 
</GridView> 
+0

请正确格式化您的XAML。如果你想让人们花时间帮助你,至少表明你自己付出了一些努力。 – eandersson

+0

当绑定失败时,Visual Studio的输出窗口会提供一些详细信息。它说什么? –

+0

它显示此消息: “错误:BindingExpression路径错误:在'Windows.UI.Xaml.DependencyObject'上找不到'maxGridCoulmns'属性BindingExpression:Path ='maxGridCoulmns'DataItem ='Windows.UI.Xaml.DependencyObject' ;目标元素是'Windows.UI.Xaml.Controls.VariableSizedWrapGrid'(Name ='null');目标属性是'MaximumRowsOrColumns'(类型'Int32')“ – Ishti

回答

6

你必须投出的DependencyProperty到ICollectionViewGroup得到实际的组对象。

在将是var actualGroup = (group as Windows.UI.Xaml.Data.ICollectionViewGroup).Group;的代码中 - 在XAML中,您只需将前缀Group.添加到绑定路径即可。

所以在XAML中,只需编辑这样的绑定:

<ItemsPanelTemplate> 
    <VariableSizedWrapGrid 
     Orientation="Horizontal" 
     MaximumRowsOrColumns="{Binding Group.maxGridCoulmns}" 
     Margin="0,0,80,0"/> 
</ItemsPanelTemplate> 
+0

这是正确答案! – Lvsti

相关问题