将内容控件放在自定义控件 XAML 中



我创建了一个自定义控件,以及使用该控件中的 ContentControl 以使用 MVVM 设计模式,但是当我运行应用程序时,我的控件不喜欢这样。为了进行测试,我还尝试了其他标准控件,但它们都没有在自定义控件中工作......只是依赖于父自定义控件的更多自定义控件。

是否有人建议如何将标准控件(如 ContentControl)放置在自定义控件中?

干杯。

编辑

XamlParseException -> '向类型的集合添加值 'System.Collections.ObjectModel.ObservableCollection(Ribbon_Framework.RibbonTabItem)' 抛出了一个例外。行号"8"和行位置"14"。

    <Ribbon:Ribbon AutomaticStateManagement="True" x:Name="Ribbon">
        <ContentControl x:Name="SearchRibbon" Content="{Binding Path=SearchRibbon}" ContentTemplate="{DynamicResource SearchRibbonTemplate}" />
    </Ribbon:Ribbon>

内容控件内部 ->

<DataTemplate x:Key="SearchRibbonTemplate">
    <ItemsControl ItemsSource="{Binding}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Ribbon:RibbonTabItem Header="Search">
                    <Ribbon:RibbonGroupBox Header="{Binding Path=DisplayName}" Width="100">
                        <Ribbon:Button Width="100" Icon="{Binding Path=TemplateResource}" LargeIcon="{Binding Path=TemplateResource}" Command="{Binding Path=Commands}" />
                    </Ribbon:RibbonGroupBox>
                </Ribbon:RibbonTabItem>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</DataTemplate>
功能

区控件需要 RibbonTabItem 类型的对象(因为它包含一个

ObservableCollection<RibbonTabItem> 

因此,您只能向其添加 RibbonTabItem 类 - 您需要确保您的控件允许其中的其他元素。某些第三方控件通过在其自定义控件的内部项内提供内容控件(即让 RibbonTabItem 内部具有 ContentControl)或允许您自定义项模板来解决此问题

您需要更改功能

区的实现或更改功能区选项卡项的功能才能正常工作。查看 ItemsControl.Items 属性,看看它是什么类型。您应该尝试将该类型用于可观察集合

最新更新