だから私はWP8アプリに取り組んでおり、LongListSelectorにカスタムグループを表示させる方法を見つけようとしています。基本的に私が持っているのは、メッセージが表示されるセクションですが、メッセージは Web アプリケーションの 2 つの異なる場所から生成される可能性があるため、適切なカテゴリ (アラートと BTR) にグループ化する必要があります。MSDN にあるサンプル コードを試してみましたが、C# のみであるため、特定の部分で行き詰まっており、現在、LLS はリストから 1 つの項目しか表示していません。例で参照されているAlphaKeyGroupを使用していないことに関係があると思います(ただし、メッセージ内の文字でソートしているのではなく、渡される型の値があるため、実際には使用できませんWeb サービスから)。以下は、LLS と日付テンプレートの XAML コードです。
<!--Panorama item one-->
<phone:PanoramaItem x:Name="item1" Header="Messages">
<phone:LongListSelector x:Name="messageList"
LayoutMode="List"
GroupHeaderTemplate="{StaticResource MessagesHeaderTemplate}"
ItemTemplate="{StaticResource AlertMessageTemplate}" IsGroupingEnabled="True"/>
</phone:PanoramaItem>
<!-- Template for Alert Messages-->
<DataTemplate x:Key="AlertMessageTemplate">
<StackPanel VerticalAlignment="Top">
<TextBlock Text="{Binding AlertDate}" Foreground="Black"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="MessagesHeaderTemplate">
<Border Background="Transparent" Padding="5">
<Border Background="#FF27AAE1" Margin="0,0,18,0" HorizontalAlignment="Left">
<TextBlock Text="{Binding MessageGroup}" Foreground="White" FontSize="48" Padding="6"
FontFamily="{StaticResource PhoneFontFamilySemiLight}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Border>
</Border>
</DataTemplate>
そして、ここに、グループ値と日付を使用して簡単なテストを作成するために使用している VB コードを示します (実際の作業バージョンでは、3 つのテキストが表示され、型の値は整数または文字列にすることができます)。このシナリオで、一方が他方よりも作業しやすい場合)。
Private Sub SetupMessageList()
Dim source As New List(Of AlertMessage)()
source.Add(New AlertMessage("Alert", "10/01/2010"))
source.Add(New AlertMessage("Alert", "11/01/2010"))
source.Add(New AlertMessage("Alert", "2/15/2012"))
source.Add(New AlertMessage("Alert", "3/15/2013"))
source.Add(New AlertMessage("BTR", "10/01/2010"))
source.Add(New AlertMessage("BTR", "11/01/2010"))
source.Add(New AlertMessage("BTR", "2/15/2012"))
source.Add(New AlertMessage("BTR", "3/15/2013"))
messageList.ItemsSource = source
End Sub
'Class For building Alert Messages from Web Service
Public Class AlertMessage
Private m_MessageGroup As String
Public Property MessageGroup As String
Get
Return m_MessageGroup
End Get
Set(value As String)
m_MessageGroup = value
End Set
End Property
Private m_AlertDate As String
Public Property AlertDate As String
Get
Return m_AlertDate
End Get
Set(value As String)
m_AlertDate = value
End Set
End Property
Public Sub New(messagegroup As String, alertdate As String)
Me.MessageGroup = messagegroup
Me.AlertDate = alertdate
End Sub
End Class