Grouped ComboBox导致InvalidCastException

时间:2014-12-26 17:25:31

标签: c# xaml

我想显示一个包含组的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是一个字符串。

1 个答案:

答案 0 :(得分:0)

根据msdn组合框中的分组是不可能的。该帖子来自2012年,但我想它仍然适用。