Je crée un contrôle personnalisé qui contient un PasswordBox
. Comment puis-je connecter un DependencyProperty
de mon contrôle personnalisé à la propriété Password
du PasswordBox
? De tous les exemples que je vois, le fait d'accrocher le mot de passe dans le modèle en utilisant TemplateBinding
devrait faire l'affaire, mais cela ne semble pas fonctionner. Qu'est-ce que je rate?Contrôle interne WP7 Contrôle interne de liaison
generic.xaml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CustomControlBinding="clr-namespace:CustomControlBinding">
<Style TargetType="CustomControlBinding:PasswordBoxTest">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CustomControlBinding:PasswordBoxTest">
<Grid Background="Transparent">
<PasswordBox Password="{TemplateBinding Text}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
PasswordBoxTest.cs
namespace CustomControlBinding
{
public class PasswordBoxTest : Control
{
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(PasswordBoxTest), new PropertyMetadata(OnTextPropertyChanged));
public string Text
{
get { return GetValue(TextProperty) as string; }
set { SetValue(TextProperty, value); }
}
public PasswordBoxTest()
{
DefaultStyleKey = typeof(PasswordBoxTest);
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
}
private static void OnTextPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
}
}
}
L'utilisation de RelativeSource n'est-elle pas la même que celle de TemplateBinding? '{Reliant RelativeSource = {RelativeSource TemplatedParent}}' http://msdn.microsoft.com/en-us/library/ms742882.aspx –