J'ai un UserControl où j'aimerais avoir quelques paramètres de personnalisation "radius" (double) et "contentSource" (string []).WPF DependencyProperty Exposition dans UserControl?
Mon UserControl se compose de quelques contrôles imbriqués:
<UserControl ...>
<Grid>
<my:Menu ...>
<my:Button>
</my:Button>
<my:Button>
</my:Button>
<my:Button>
</my:Button>
</my:Menu ...>
</Grid>
Je suis en train d'exposer les paramètres avec:
public double Rad
{
get { return (double)GetValue(RadProperty); }
set { SetValue(RadProperty, value); }
}
public static readonly DependencyProperty RadProperty =
DependencyProperty.Register(
"Radius",
typeof(double),
typeof(Menu));
public String[] DataSource
{
get { return (String[])GetValue(DataSourceProperty); }
set { SetValue(DataSourceProperty, value); }
}
public static readonly DependencyProperty DataSourceProperty =
DependencyProperty.Register(
"DataSource",
typeof(String[]),
typeof(Menu));
Cependant, il semble y avoir deux problèmes , le paramètre "string []" semble provoquer des crashs, mais surtout, je ne peux pas définir la propriété "Radius" du tout. Y a-t-il autre chose que je dois faire pour exposer le paramètre?
cela semble bon, il y a des choses que je ne savais pas, mais je me sers de mon UserControl dans une classe différente, et faire quelque chose comme: Puis-je faire quelque chose comme ça? –
Verhogen
Oui, mais vous devez utiliser le nom de la propriété publique, qui est "Rad". Cela fonctionnera: –
ah, j'ai maintenant trouvé que mon problème est que les valeurs ne sont pas encore définies lorsque nous sommes dans le constructeur du CustomControl. Y at-il quelque part où le contrôle n'est pas encore affiché quand je pourrais lire la valeur qui a été définie? – Verhogen