さて、 DisplayNameプロパティを持つオブジェクトのリストを長いリスト セレクターにバインドしようとしています。
XAML コード
<phone:LongListSelector x:Name="lls_TemplateFields" HorizontalAlignment="Left" Width="450" Grid.Row="2" Height="400" LayoutMode="List" Background="#FF9E9D9D" IsGroupingEnabled="False">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding DisplayName}" Foreground="Black" FontSize="24"/>
</Grid>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
C# コード
List<AttributeDefinition> m_SelectedAttributes = new List<AttributeDefinition>();
lls_TemplateFields.ItemsSource = m_SelectedAttributes;
私のクラスAttributeDefinitionには、 DisplayNameのプロパティが含まれています。グループキーを使用してリストをグループ化すると、リストが表示されますが、アイテムの単純なリストだけを表示することはできません。WPF C#のリストボックスに似ています。
このリストを使用して、DisplayName プロパティによってアルファベット順にグループ化されたすべての AttributeDefinitions を示す別のリストから選択された AttributeDefinitions のリストを表し、表示値は以下に示すように DisplayName プロパティにバインドされます...
XAML
<phone:LongListSelector x:Name="lls_AttributeList" HorizontalAlignment="Left" Height="450" VerticalAlignment="Top" Width="450" HideEmptyGroups="True" IsGroupingEnabled="True" SelectionChanged="SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid>
<Border BorderThickness="2">
<TextBlock Text="{Binding DisplayName}" Foreground="{StaticResource PhoneChromeBrush}" FontSize="24"/>
</Border>
</Grid>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
<phone:LongListSelector.GroupHeaderTemplate>
<DataTemplate>
<Grid Width="50" Height="50" HorizontalAlignment="Left" VerticalAlignment="Center" Background="Blue">
<Border BorderThickness="4">
<TextBlock Text="{Binding Key}" Foreground="White" FontSize="38" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</Grid>
</DataTemplate>
</phone:LongListSelector.GroupHeaderTemplate>
</phone:LongListSelector>
C#
List<AttributeKeyGroup<AttributeDefinition>> DataSource = AttributeKeyGroup<AttributeDefinition>.CreateGroups(AttributeData,
Thread.CurrentThread.CurrentUICulture,
(AttributeDefinition aDef) => { return aDef.Type; },
true);
lls_AttributeList.ItemsSource = DataSource;
このリストは問題なく機能します。属性定義の合計リストから項目を選択すると、それらが LongListSelector から削除され、選択されたリストItemssource の LongListSelectorに追加されるため、バックグラウンドのデータは適切に機能しています。
このユーザー コントロールに関連するコードの詳細については、お気軽にお問い合わせください。私の作品との秘密保持契約を破ることなく、できる限り多くのコードを開示します。時間を割いて読んでくれてありがとう。とても有難い。