分组组合框会导致 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是一个字符串。

分组组合框会导致 InvalidCastException

根据 msdn 在 ComboBox 中进行分组是不可能的。该线程来自 2012 年,但我想它仍然适用。

相关文章:
  • 没有找到相关文章