2009-07-29 11 views
9

Tengo un requisito de referencia de paso del control a otro control personalizado. creé un control personalizado que contiene una propiedad de dependencia associateDatagridPropertyCómo pasar de referencia de un control a otro control en XAML

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); } 
    } 

En el XAML que estoy asignar valor como esto

<Datagrid x:name=ClientGrid /> 

Aquí cuadrícula de datos es Microsoft WPF toolkit DataGrid

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

cuando intento acceder al valor de la propiedad AssociatedDatagrid siempre muestra null

¿Puede alguien decirme la manera correcta de hacerlo?

Respuesta

1

No es necesario Path=Name en su Binding. Lo que termina haciendo aquí en su lugar es pasar el valor de la propiedad Name del DataGrid.

+0

lugar de publicar otra respuesta (ya que estoy de acuerdo), sólo añadiremos una nota aquí, en caso de que todavía hay confusión. Principalmente, detrás de las escenas, la unión está tratando de hacer lo siguiente: AssociatedDatagrid = (clientsGrid.Name como cuadrícula de datos); que saldrá a nulo. –

+0

Estoy de acuerdo con esto, +1. –

14

Aquí está el código:

primer elemento que se hace referencia en el segundo:

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

El segundo elemento:

<ContentControl Content={Binding ElementName=aGivenNameLabel}" /> 

Buena suerte!

+1

gracias jmix, obtuve la respuesta perfecta, lo que quiero. – Gate

Cuestiones relacionadas