XAML-Kolumne: WPF und Windows-Apps

XAML-Tipp: Universal-Windows-Apps – Data Binding auf Events
Keine Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „Universal-Windows-Apps: Data Binding auf Events“.

Universal-Windows-Apps: Data Binding auf Events

Ab Windows 10 gibt es nun endlich ein lang ersehntes Feature: Data Binding auf Events. So kann jedes Event mittels Compiled Data Binding an Methoden des ViewModels gebunden werden – mit oder ohne EventArgs. Das ist ein großer Feind für Behaviors, und das unbeliebte ICommand rückt immer mehr in den Schatten. Der ungewohnte Aspekt hierbei ist, dass ein Compiled Data Binding nur auf die Code-Behind der aktuellen View beschränkt ist. Beim Einsatz vom MVVM-Pattern muss bei der Code-Behind ein ViewModel-Property angelegt werden. Beim Binden von Events ist das Festlegen vom Binding-Mode nicht notwendig. Listing 1 und 2 zeigen, wie ein Button-Klick eine Logik im ViewModel auslöst.

 
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
  <TextBlock Text="{x:Bind ViewModel.Message, Mode=OneWay}" FontSize="42" />
  <Button Content="OK" Click="{x:Bind ViewModel.SayHello}" />
</StackPanel>
 
public class MainPageViewModel : INotifyPropertyChanged
{
  private string _message { get; set; }
  public string Message
  {
    get { return _message; }
    set
    {
      _message = value;
      OnPropertyChanged();
    }
  }

  private void OnPropertyChanged([CallerMemberName] string propertyName = null)
  {
    var handler = PropertyChanged;
    if(handler != null)
    {
      handler(this, new PropertyChangedEventArgs(propertyName));
    }
  }

  public void SayHello()
  {
    Message = "Hallo Windows 10 App";
  }

  public event PropertyChangedEventHandler PropertyChanged;
}

BASTA! 2021

Neuerungen in .NET 6.0 – das eine .NET, sie alle zu beherrschen

mit Dr. Holger Schwichtenberg (DOTNET-DOKTOR)

C# Workshop: — was kommt Neues mit C# 10 und .NET 6?

mit Rainer Stropek (timecockpit.com)

Funktionaler Code mit C# 9

Oliver Sturm (DevExpress)

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -