[英]LonglistSelector in scrollViewer not scrollable
在我的項目中,我需要顯示一個按鈕列表,其中包含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顯示所有項目,而只是適合屏幕。
因此,我在代碼中看到了三個明顯的問題:
您正在C#中創建ScrollViewer的新實例,但實際上並未將choiceSelector
實例添加到viewer
實例中。 不知道您是否只是在示例中忽略了它,或者您實際上沒有添加它。
我不建議在ScrollViewer中添加LongListSelector ....,因為默認情況下它已經滾動了。 您的問題是將LongListSelector放在StackPanel中,這不會以任何方式限制LongListSelector的高度。
相反,我會將LongListSelector放在Grid控件中,並將行高定義為*。 這意味着網格高度被限制在父容器中。
話雖如此,您是否已經從http://phone.codeplex.com工具包中研究了ListPicker控件? 似乎它與您要尋找的東西有點接近。
高溫超導
這就是我在代碼中使用longlistselector的方式,它對無限滾動非常適合我。 看看是否對您有幫助。
<Grid Background="#FFE6E2E2" Margin="10,10,0,0">
<phone:LongListSelector x:Name="lb" Margin="0,0,0,0" ItemTemplate="{StaticResource ItemTemplate}"></phone:LongListSelector>
</Grid>
將longlistselector的高度限制為200左右,該高度小於用戶控件的高度。 確保在長列表選擇器的xaml中提到Height =“”屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.