分组组合框会导致 InvalidCastException
本文关键字:InvalidCastException 组合 | 更新日期: 2023-09-27 18:35:24
我想显示一个带有组的组合框。一旦页面被呈现,我就会收到一个带有以下消息的 InvalidCastException(无堆栈跟踪)
Schnittstelle nicht unterstü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
是一个字符串。
根据 msdn 在 ComboBox 中进行分组是不可能的。该线程来自 2012 年,但我想它仍然适用。