私のプロジェクトでは、custommessagebox に選択肢のあるボタンのリストを表示する必要があります。
今、私はそれを設定するのに問題はありませんが、ロングリストセレクターを作成し、それをスクロールビューアーに追加してカスタムメッセージボックスを表示すると、いくつかのボタンしか表示されず、スクロールできません。
私が持っているコードは次のとおりです。
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>
wherelistbutton
は別のコントロールで、基本的にbutton
いくつかのtextBlocks
、選択されているかどうか (別のスタイル) を示すブール値、およびLink
カスタム クリック イベントで返される文字列 を含みます。
結果は次のようになります。
しかし、問題はスクロールできないことです...
なぜそのように振る舞うのですか?修正方法は?
編集:
longlistselector などをいじってみると、スクロールが機能することがわかりました。問題は、LongListSelector がすべての項目ではなく、メッセージ ボックスに収まる数の項目しか読み込まないことです..... (小さいメッセージ ボックスを作成すると、より少ないアイテム、より大きく作成すると、より多く表示されます)
したがって、質問は次のように少しシフトしました。
LONGLISTSELECTOR を作成する方法は、画面に収まるだけではなく、すべてのアイテムを表示します。