Я пытаюсь создать класс-потомок из набора инструментов Silverlight LongListSelector. Назовем его SimpleLonglistSelector. Я начал с «Silverlight for Windows Phone Toolkit Source & Sample — Feb 2011.zip».
http://silverlight.codeplex.com/releases/view/60291
Я создал новый класс:
public class SimpleLongListSelector : LongListSelector
{
public SimpleLongListSelector()
{
var itemsPanelTemplate = @"
<ItemsPanelTemplate xmlns='http://schemas.microsoft.com/client/2007'>
<toolkit:WrapPanel xmlns:toolkit='clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit' Orientation=""Horizontal""/>
</ItemsPanelTemplate>";
this.GroupItemsPanel = (ItemsPanelTemplate)XamlReader.Load(itemsPanelTemplate);
var groupItemTemplate = @"
<DataTemplate xmlns='http://schemas.microsoft.com/client/2007'>
<Border Width=""99"" Height=""99"" Background=""{StaticResource PhoneAccentBrush}"" Margin=""6"" IsHitTestVisible=""{Binding HasItems}"">
<TextBlock Text=""{Binding Key}""
FontFamily=""{StaticResource PhoneFontFamilySemiBold}""
FontSize=""36""
Margin=""{StaticResource PhoneTouchTargetOverhang}""
Foreground=""{StaticResource PhoneForegroundBrush}""
VerticalAlignment=""Bottom""/>
</Border>
</DataTemplate>";
this.GroupItemTemplate = (DataTemplate)XamlReader.Load(groupItemTemplate);
var groupHeaderTemplate = @"
<DataTemplate xmlns='http://schemas.microsoft.com/client/2007'>
<Border Background=""Transparent"">
<Border Background=""{StaticResource PhoneAccentBrush}"" Width=""75"" Height=""75"" HorizontalAlignment=""Left"">
<TextBlock Text=""{Binding Path=Key}""
Foreground=""{StaticResource PhoneForegroundBrush}""
Style=""{StaticResource PhoneTextExtraLargeStyle}""
VerticalAlignment=""Bottom""/>
</Border>
</Border>
</DataTemplate>";
this.GroupHeaderTemplate = (DataTemplate)XamlReader.Load(groupHeaderTemplate);
var itemTemplate = @"
<DataTemplate xmlns='http://schemas.microsoft.com/client/2007'>
<TextBlock Text=""{Binding Title}"" FontSize=""30""/>
</DataTemplate>";
this.ItemTemplate = (DataTemplate)XamlReader.Load(itemTemplate);
}
}
Затем я добавил его в пример LongListSelector в тот же свод, что и все другие селекторы длинного списка:
<controls:PivotItem Header="SLLS">
<local:SimpleLongListSelector x:Name="simple" />
</controls:PivotItem>
Затем я добавил, что его источник должен совпадать с источником фильмов в LoadLinqMovies().
simple.ItemsSource = moviesByCategory;
Затем запустите код (я знаю, что это выглядит некрасиво, потому что привязки не были настроены правильно, я делаю это, чтобы вы знали, что это не данные. Если хотите, вы можете сделать это так:
simple.ItemsSource = movies.GroupBy((m) => m.Title[0]).Select((c) => new PublicGrouping<char, Movie>(c));
Похоже, я хочу, чтобы это выглядело.
Что ж, в любом случае это работает так, как ожидалось, за исключением случаев, когда я нажимаю заголовок группы. (любой из [по умолчанию синих] квадратов). я получаю
WrappedException
Сообщение об ошибке:
0xc00cee3c
Что я думаю означает:
well-formedness constraint: unique attribute spec
Я не думаю, что у меня есть проблема уникальности. Что я делаю неправильно?
Border
, вы все еще получаете эту ошибку? - person AakashM   schedule 10.10.2011