我想显示一个包含组的ComboBox。一旦页面被渲染,我就会得到一个带有以下消息的InvalidCastException(没有堆栈跟踪)
Schnittstellenichtunterstützt
翻译就像是
不支持接口
我想这是一些XAML的事情,因为我的代码在移除<ComboBox.GroupStyle>
部分时运行良好。出了什么问题?在此先感谢您的帮助!
<CollectionViewSource x:Name="TileOptions" IsSourceGrouped="True" Source="{Binding LiveTileTypeOptions}" />
XAML:
<ComboBox ItemsSource="{Binding Source={StaticResource TileOptions}}" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="120">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid />
<TextBlock Text="{Binding Key}" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ComboBox.GroupStyle>
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<CarouselPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
视图模型:
public IEnumerable<IGrouping<string, LiveTileTypeDescription>> LiveTileTypeOptions
{
get { return TileFactory.GetTileTypeOptions().GroupBy(t => t.Category).OrderBy(g => g.Key); }
}
LiveTileTypeDescription
是一个简单的类,具有很少的属性。 Category
是一个字符串。