如何将控件的引用传递给XAML中的另一个控件

时间:2009-07-29 08:44:03

标签: wpf data-binding controls

我需要将控件的引用传递给另一个自定义控件。 我创建了一个包含依赖项属性associateDatagridProperty

的自定义控件
    public static readonly DependencyProperty
        AssociatedDataGridProperty = DependencyProperty.Register(
            "AssociatedDatagrid",
            typeof(DataGrid),
            typeof(CustomControl),
            new FrameworkPropertyMetadata(null,
                FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)
            );

    public Datagrid AssociatedDatagrid
    {
        get { return (Datagrid )base.GetValue(AssociatedDataGridProperty); }
        set { base.SetValue(AssociatedDataGridProperty, value); }
    }

在XAML中我像这样分配值

<Datagrid x:name=ClientGrid />

此处Datagrid是Microsoft WPF工具包datagrid

<CustomControl x:Name="DatagridPaging"  
               Canvas.Left="24"    
               Canvas.Top="236"
               AssociatedDatagrid="{Binding ElementName=clientsGrid ,Path=Name}">

当我尝试访问AssociatedDatagrid属性的值时,它始终显示null

谁能告诉我正确的做法?

2 个答案:

答案 0 :(得分:15)

以下是代码:

将在第二个元素中引用的第一个元素:

<Label x:Name="aGivenNameLabel" Content="kikou lol"/>  

第二个要素:

<ContentControl Content={Binding ElementName=aGivenNameLabel}" />
祝你好运!

答案 1 :(得分:1)

Path=Name中不需要Binding。你最终在这里做的是传递Name的{​​{1}}属性的值。