【发布时间】:2013-12-10 05:11:18
【问题描述】:
在我的项目中,我需要在 custommessagebox 中显示带有选项的按钮列表。
现在,我设置它没有问题,但是当我创建 longlistselector 时,将其添加到 scrollviewer 并显示 cusstommessagebox,只显示几个按钮,我无法滚动更多。
我的代码如下:
private void btnChronicity_ButtonClicked(object sender, Events.LinkEventArgs e)
{
editBox = new CustomMessageBox()
{
....
};
ScrollViewer viewer = new ScrollViewer();
choiceSelector = new Controls.MessageBocChoiceSelectorControl();
List<items> chronicity = new List<items>();
foreach (ChronicityModel chronicity in ...Chronicities)
{
chronicity.Add(new items(chronicity.Name, chronicity.Selected, chronicity.Id));
}
choiceSelector.ItemSource = chronicity;
editBox.Content = viewer;
editBox.Show();
}
而choiceselector是usercontrol,看起来像:
<StackPanel>
<Controls:LongListSelector x:Name="LayoutRoot">
<Controls:LongListSelector.ItemTemplate>
<DataTemplate>
<Controls1:CheckableListButton Header1="{Binding Header}"
Selected="{Binding Selected}"
Link="{Binding Link}"
ButtonClicked="CheckableListButton_ButtonClicked"/>
</DataTemplate>
</Controls:LongListSelector.ItemTemplate>
</Controls:LongListSelector>
</StackPanel>
其中listbutton是另一个控件,基本上button包含几个textBlocks,布尔表示是否被选中(另一种样式)和一个字符串Link,在自定义点击事件中返回。
结果如下所示:
但问题是我无法滚动...
为什么会这样?如何解决?
编辑:
当我使用 longlistselector 和周围的东西时,我发现滚动有效,问题是 LongListSelector 只加载适合消息框的项目而不是所有项目.....(当我创建较小的消息框时,它显示的项目更少,当我创建更大时,它显示更多)
所以问题有点转移到:
如何让 LONGLISTSELECTOR 显示所有项目,而不是只显示适合屏幕的项目。
【问题讨论】:
-
您似乎没有固定滚动查看器的高度。尝试给 ScrollViewer 一些高度,以便在其子高度大于其高度时滚动
-
你不能在scrollviewer中制作longlistselector
-
该页面上的解决方案在哪里?
-
我并不是说那个页面上有解决方案,我只是说他在 scrollviewer 中使用 longlistselector 并且它有效,所以我不明白你为什么说这是不可能的当它显然是。
标签: c# windows-phone-8 longlistselector windows-phone-toolkit