【问题标题】:Is it possible to propagate markup tags to a usercontrol in WPF?是否可以将标记标签传播到 WPF 中的用户控件?
【发布时间】:2016-08-18 08:21:42
【问题描述】:

首先,我对 WPF 很陌生,如果这是一个明显的问题,我很抱歉。我对这个主题进行了研究,但一无所获,也许我没有使用正确或恰当的词。我会感谢你在这件事上的帮助。

我的问题很“简单”: 我的应用程序的用户控件中有一个 Telerik RadGridView。这包含 RadGridView、一对按钮和一些额外的功能,并且在程序的所有范围内都非常通用,因此我需要将一些网格功能扩展到控件。

已创建绑定到某些网格属性的 DependencyProperties,它们可以完美运行。但是问题出现在我有一个动态的值集合到通过 XAML 绑定到网格的属性。

您将通过一个示例来理解这一点。 RadGridView 可以按某一列或多列对其所有行进行分组。这样做的方法是:

<telerik:RadGridView>
     <telerik:GroupDescriptor Member="groupingColumn1"/>
     <telerik:GroupDescriptor Member="groupingColumn2"/>
     <!--...-->
     <telerik:GroupDescriptor Member="groupingColumnN"/>
</telerik:RadGridView>

所以我想要一个具有相同功能并传播到内部网格的控件,例如

<UserControls:RadGridControl>
     <telerik:GroupDescriptor Member="groupingColumn1"/>
     <telerik:GroupDescriptor Member="groupingColumn2"/>
     <!--...-->
     <telerik:GroupDescriptor Member="groupingColumnN"/>
</UserControls:RadGridControl>

并将 GroupDescriptors 传播到用户控件内的 RadGridView,方法与代码的第一位相同。 是否可以通过 XAML 做到这一点?

谢谢。

【问题讨论】:

    标签: wpf xaml user-controls telerik


    【解决方案1】:

    是的,这是可能的。

    首先在您的用户控件中添加您要传播的类型的属性。在你的情况下:

    Telerik.Windows.Data.GroupDescriptorCollection GroupDescriptors
    {
        get
        {
            return mygridview.GroupDescriptors;
        }
    }
    

    现在,当您想在控件之外更改组描述符时,您可以执行此操作。

    <local:MyUserControl>
        <local:MyUserControl.GroupDescriptors>
            <telerik:GroupDescriptor Member="groupingColumn1"/>
            <telerik:GroupDescriptor Member="groupingColumn2"/>
            <!--...-->
            <telerik:GroupDescriptor Member="groupingColumnN"/>
        </local:MyUserControl.GroupDescriptors>
    </local:MyUserControl>
    

    【讨论】:

    • 哦,很简单!只是一些错字¿错误?在您的回答中:我更换了 每个 以便工作。不过我还是完全不明白。如果在集合标记内创建内部元素,WPF 会自动将它们添加到集合中吗?而如果“添加方式”不规范怎么办?没关系?再次感谢:)
    • 和在RadGridView中使用是一样的。在 中定义 GroupDescriptors。因此,您只需将其暴露在控件之外。
    • 是的,当然,这是有道理的。因此,不可能通过 XAML 以如此简单的方式“创建”将这些元素添加到自定义列表中,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多