2011-06-07 24 views
5

he creado un control de usuario costumbre que Im usar en mi control principal xaml:hacer que la propiedad de mi Usercontrol Bindable

<Controls:CustomControl Width="200" Height="20" 
TotalCount="{Binding TotalRecordCount}" SuccessCount="{Binding ValidationCount}" ErrorCount="{Binding ValidationErrorCount}" Margin="0,5,0,0" HorizontalAlignment="Left"> 
</Controls:CustomControl> 

quería hacer las variables privadas de mi usercontrol personalizada siendo ErrorCount, SuccessCount y el recuento total (que son de tipo int32) Bindable para que pueda enlazar valores a ellos. Ahora cuando trato de vincularlo a mi fuente de elemento, aparece el siguiente mensaje de error e excepción: "Objeto de tipo 'System.Windows.Data.Binding' no se puede convertir a tipo 'System.Int32'

Muchas gracias , Michelle

Respuesta

6

Necesita implementar el Pr las operaciones que usan DependencyProperty no usan variables privadas para contener estos valores. Aquí hay un ejemplo: -

#region public int SuccessCount 

    public int SuccessCount 
    { 
     get { return (int)GetValue(SuccessCountProperty); } 
     set { SetValue(SuccessCountProperty, value); } 
    } 

    public static readonly DependencyProperty SuccessCountProperty = 
     DependencyProperty.Register(
      "SuccessCount", 
      typeof(int), 
      typeof(CustomControl), 
      new PropertyMetadata(0, OnSuccessCountPropertyChanged)); 

    private static void OnSuccessCountPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     CustomControl source = d as CustomControl; 
     int value = (int)e.NewValue; 

     // Do stuff when new value is assigned. 
    } 
    #endregion public int SuccessCount 
+0

Muchas gracias. –

0

para que una propiedad para ser "enlazables", lo que significa que se puede establecer usando DataBinding, que la propiedad tiene que ser un Dependency Property. para obtener más información sobre las propiedades de dependencia, compruebe this MSDN article.

Espero que esto ayude :)

Cuestiones relacionadas