是否可以将标记标记传播到WPF中的用户控件?

时间:2016-08-18 08:21:43

标签: wpf xaml user-controls telerik

首先,我对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传播到usercontrol里面的RadGridView,方法与第一段代码相同。 是否可以通过XAML执行此操作?

感谢。

1 个答案:

答案 0 :(得分: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>