2013-11-27 53 views
0

几个小时后,我尝试从WP工具包中更改我的LongListMultiSelector,以便像下面截图(来自Panorama Sample)一样水平显示其项目。LongListMultiSelector的水平项目

http://i.imgur.com/HGHPOsq.png

我甚至尝试与改变它的模板,但没有独到之处影响。

非常感谢您的帮助。

+0

那么你如何向我们展示你尝试过的东西? – gleng

+0

我当然不知道该向你展示什么,因为只有我获得的东西是水平的,但是只有一行。 你知道我想要具有与标准LongListMultiSelector所提供的效果完全相同的效果,但采用水平方式。 我甚至不知道是否可能,因为我看到StackOverflow与ListListSelector相关的一些问题,从中我明白它只能用于ListBox(但在这里我将失去我期望的行为 - 多选。 当然,然后我也无法以我需要的方式显示元素列表。简单,水平的StackPanel不是我想要的。 –

回答

0

好的。我终于做到了。如果有人会有同样的问题,这是我的解决方案。

我总是尽量避免通过代码背后的方式解决WP中的布局问题,但特别我这样做。

我的XAML:

<Grid Margin="10 -30 0 0" Name="GridWithLLMS"> 
    <toolkit:LongListMultiSelector LayoutMode="Grid" 
     ItemsSource="{Binding Items}" 
     GridCellSize="255,190" 
     toolkit:TiltEffect.IsTiltEnabled="True" 
     EnforceIsSelectionEnabled="True" 
     Margin="0" 
    /> 
</Grid> 

我的代码:

public AddNewTrainingPage() 
{ 
    InitializeComponent(); 

    SetWidthOfGridWithExercisesDependingOnQuantityOfItems(); 
    DataContext = App.Db; 
} 

private void SetWidthOfGridWithExercisesDependingOnQuantityOfItems() 
{ 
    ExercisesListGrid.Width = ((App.Db.Items.Count/3) + 1) * 270; 
} 

其中:

  • 3是行我想有
  • 255的数量是1 宽度LongListM ultiSelectorItem(+潜在边缘宽度)

当然,我认为我的LongListMultiSelector的项目将不会改变。如果你想使它与动态元素集合一起工作,你应该将LongListMultiSelector的宽度绑定到你的ViewModel中你的集合项的数量的属性。

1

检查了这一点

http://www.geekchamp.com/articles/wp7-longlistselector-in-depth--part2-data-binding-scenarios

在最后的代码片段会有所帮助。

<toolkit:LongListSelector.GroupItemsPanel> 
    <ItemsPanelTemplate> 
     <toolkit:WrapPanel/> 
    </ItemsPanelTemplate> 
</toolkit:LongListSelector.GroupItemsPanel> 
+0

感谢您的回答。 不幸的是,我使用WP8和您发送的文章是关于WP7。不知道WP7和WP8的区别,但是: 1.在WP8中,我使用''而不是''来使用LongListSelector。 2.从**工具箱编辑LongListMultiSelector的模板**我需要编辑LongL istSelector in LongListMultiSelector 我没有从''访问属性'GroupItemsPanel'的LongListSelector属性' –