我正在尝试从silverlight工具包LongListSelector创建一个后代类。我们称之为SimpleLonglistSelector。我从“ Silverlight for Windows Phone工具包的源和示例-2011年2月。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
我认为我没有独特性问题。我究竟做错了什么?
最佳答案
如果您使用7.1工具箱中的LongListSelector(位于http://silverlight.codeplex.com/releases/view/71550),则示例代码将按上面列出的方式工作。这一定是原始LLS中的一些错误...
关于windows-phone-7 - 当我从LongListSelector下降时,为什么会收到“格式正确的约束:唯一属性规范”(0xc00cee3c)错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6880464/