Pour les fenêtres rapides dans WPF, je préfère lier le DataContext de la fenêtre à la fenêtre elle-même ; tout cela peut être fait en XAML.
Window1.xaml
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding RelativeSource={RelativeSource self}}"
Title="Window1" Height="300" Width="300">
<StackPanel>
<TextBlock Text="{Binding Path=MyProperty1}" />
<TextBlock Text="{Binding Path=MyProperty2}" />
<Button Content="Set Property Values" Click="Button_Click" />
</StackPanel>
</Window>
Window1.xaml.cs
public partial class Window1 : Window
{
public static readonly DependencyProperty MyProperty2Property =
DependencyProperty.Register("MyProperty2", typeof(string), typeof(Window1), new UIPropertyMetadata(string.Empty));
public static readonly DependencyProperty MyProperty1Property =
DependencyProperty.Register("MyProperty1", typeof(string), typeof(Window1), new UIPropertyMetadata(string.Empty));
public Window1()
{
InitializeComponent();
}
public string MyProperty1
{
get { return (string)GetValue(MyProperty1Property); }
set { SetValue(MyProperty1Property, value); }
}
public string MyProperty2
{
get { return (string)GetValue(MyProperty2Property); }
set { SetValue(MyProperty2Property, value); }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
// Set MyProperty1 and 2
this.MyProperty1 = "Hello";
this.MyProperty2 = "World";
}
}
Dans l'exemple ci-dessus, notez la liaison utilisée dans l'élément DataContext
sur la fenêtre, cela dit "Définissez votre contexte de données à vous-même". Les deux blocs de texte sont liés à MyProperty1
y MyProperty2
le gestionnaire d'événements pour le bouton définira ces valeurs, qui se propageront automatiquement dans l'interface de l'utilisateur. Text
des deux blocs de texte car les propriétés sont des propriétés de dépendance.
2 votes
Cette question peut également être utile puisqu'il est un peu plus récent ...