Répondre

3

Cela va obtenir ce que vous entrez dans votre boîte de texte à votre propriété dans le codebehind. En fonction de la taille de votre projet, je considérerais MVVM pour pousser le code vers le ViewModel, puis dans le UserControl, vous spécifieriez this.DataContext = une instance de votre ViewModel.

Xaml:

<UserControl x:Class="SilverlightApplication1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 

    <StackPanel> 

     <TextBox Text="{Binding Foo,Mode=TwoWay}"/> 

     <Button Content="Click" Click="Button_Click"/> 

    </StackPanel> 

</UserControl> 

code Derrière:

public partial class MainPage : UserControl 
{ 
    public string Foo { get; set; } 

    public MainPage() 
    { 
     InitializeComponent(); 
     this.DataContext = this; 
    } 
} 
1

Je voudrais créer la liaison dans le code. Supposons que votre TextBox a x:Name="MyTextBox" suppose également que vous avez ajouté une propriété de dépendance (ou au moins une propriété standard avec l'implémentation INotifyPropertyChanged) appelée MyText sur votre contrôle utilisateur.

public partial class MainPage : UserControl 
    { 
    public MainPage() 
    { 
    InitializeComponent(); 
    Binding binding = new Binding("MyText"); 
    binding.Mode = BindingMode.TwoWay; 
    binding.Source = this; 
    MyText.SetBinding(TextBox.TextProperty, binding); 
    } 
} 

Cela laisse pour d'autres usages plus typiques de la propriété DataContext UserControl.

Questions connexes