Salut, je veux faire ce qui suit dans XAML:WPF: AFFECTATION élément enfant à la propriété en XAML
J'ai un FocusTarget de propriété dans ma classe de contrôle que je veux attribuer un UIElement de la classe actuelle. Est-ce possible en XAML?
<my:BaseControl x:Class="SectionControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
FocusTarget="myCtrl"> // this fails
..
<my:CodeBlockControl x:Name="myCtrl" />
..
</my:BaseControl>
MISE À JOUR: je maintenant mis en œuvre la propriété comme propriété de dépendance, mais il semble que la cession n'occures, bien que je lui confient en XAML. Mais il n'y a pas compiler, ni erreur d'exécution:
en XAML:
FocusTarget="{Binding ElementName=myCtrl}"
en cs:
public static readonly DependencyProperty FocusTargetProperty;
static BaseControl()
{
FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata(null);
FocusTargetProperty = DependencyProperty.Register("FocusTarget", typeof(FrameworkElement), typeof(BaseControl), metadata, Validate);
}
public FrameworkElement FocusTarget
{
get { return GetValue(FocusTargetProperty)as FrameworkElement; }
set { SetValue(FocusTargetProperty, value); }
}
pourrait votre rappel « Valider » être arrêter l'affectation en quelque sorte? Cela pourrait valoir la peine de le commenter temporairement pour voir s'il commence à fonctionner. –
non c'est une méthode qui ne fait rien mais retourne toujours vrai – codymanix
J'ai eu le problème des propriétés n'étant pas définies lorsque j'essaie de raccourcir faire un contrôle complet; mon contrôle personnalisé a été dérivé de UIElement. Leçon: dériver de Contrôle comme le dit le manuel! –