0

だから私は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
4

1 に答える 1