2014-09-08 3 views
0

J'écris une classe DateTimePicker personnalisée pour WPF, mais je n'arrive pas à obtenir les valeurs de liaison du parent.Passage de paramètre du parent au contrôle personnalisé WPF

Parent:

<cc:DateTimePicker DTSelectedDate="{Binding RA_EFFECTIVE_DATE}" /> 

enfant:

public partial class DateTimePicker : UserControl 
{ 



    public DateTime DTSelectedDate { get; set; } 


    public static readonly DependencyProperty DateProperty = DependencyProperty.Register 
    (
      "DTSelectedDate", 
      typeof(DateTime), 
      typeof(DateTimePicker) 
    ); 



    public DateTimePicker() 
    { 

     InitializeComponent(); 
     this.DataContext = this; 


    } 

} 

enfant XAML:

<DatePicker SelectedDate="{Binding DTSelectedDate}" Width="150"/> 

Je me suis arrêté avec le débogueur dans le constructeur, mais ne peut pas sembler obtenir des valeurs du parent.

+0

DTSelectedDate dans getter/setter vous devez retourner DTSelectedDate DP. – Maximus

+0

Jetez un coup d'œil à la syntaxe de la propriété de dépendance (http://wpftutorial.net/DependencyProperties.html#creation). Votre propriété DTSelectedDate doit utiliser les méthodes GetValue et SetValue. Vérifiez également les conventions de dénomination de vos deux propriétés: le nom de la propriété de dépendance doit correspondre au nom de la propriété "regular", suivi du suffixe "Property", c'est-à-dire "DTSelectedDateProperty". –

+0

Essayé les deux, avec getter: GetValue (DTSelectedDateProperty), setter: SetValue (DTSelectedDateProperty, valeur) et renommer la propriété depndency. Toujours pas d'effet, merci pour les réponses! – spedy

Répondre

0
public static readonly DependencyProperty SelectedDateProperty = 
    DependencyProperty.Register("SelectedDate", typeof(DateTime), typeof(DateTimePicker)); 

public DateTime SelectedDate 
{ 
    get { return (DateTime)GetValue(SelectedDateProperty); } 
    set { SetValue(SelectedDateProperty, value); } 
} 

modifier également votre enfant XAML:

<UserControl 
      // the usual stuff that is already there 
    x:Name="Me"> 

<DatePicker SelectedDate="{Binding ElementName=Me, Path=SelectedDate}" 

...

+0

Le problème ne réside pas dans le fichier XAML enfant, je peux définir par programme les valeurs de SelectedDate dans le fichier XAML enfant. Le problème est que le parent XAML ne définit pas la valeur SelectedDate. – spedy

Questions connexes