Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha támogatni szeretné OneWay vagy TwoWay kötést, hogy a kötési céltulajdonságok automatikusan tükrözzék a kötésforrás dinamikus változásait (például az előnézeti panel automatikusan frissüljön, amikor a felhasználó szerkeszt egy űrlapot), az osztálynak meg kell adnia a megfelelő módosított tulajdonságokról szóló értesítéseket. Ez a példa bemutatja, hogyan hozhat létre INotifyPropertyChangedmegvalósító osztályt.
példa
A INotifyPropertyChanged implementálásához deklarálnia kell az PropertyChanged eseményt, és létre kell hoznia a OnPropertyChanged metódust. Ezután minden olyan tulajdonság esetében, amelyről változásértesítést szeretne kapni, meghívja OnPropertyChanged, amikor a tulajdonság frissül.
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace SDKSample
{
// This class implements INotifyPropertyChanged
// to support one-way and two-way bindings
// (such that the UI element updates when the source
// has been changed dynamically)
public class Person : INotifyPropertyChanged
{
private string name;
// Declare the event
public event PropertyChangedEventHandler PropertyChanged;
public Person()
{
}
public Person(string value)
{
this.name = value;
}
public string PersonName
{
get { return name; }
set
{
name = value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged();
}
}
// Create the OnPropertyChanged method to raise the event
// The calling member's name will be used as the parameter.
protected void OnPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
}
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
' This class implements INotifyPropertyChanged
' to support one-way and two-way bindings
' (such that the UI element updates when the source
' has been changed dynamically)
Public Class Person
Implements INotifyPropertyChanged
Private personName As String
Sub New()
End Sub
Sub New(ByVal Name As String)
Me.personName = Name
End Sub
' Declare the event
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Property Name() As String
Get
Return personName
End Get
Set(ByVal value As String)
personName = value
' Call OnPropertyChanged whenever the property is updated
OnPropertyChanged()
End Set
End Property
' Create the OnPropertyChanged method to raise the event
' Use the name of the member that called this method in place of name
Protected Sub OnPropertyChanged(<CallerMemberName> Optional name As String = Nothing)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name))
End Sub
End Class
A Person kötés támogatásához használható TwoWay osztály példáját a Szövegdoboz szövegének forrásfrissítésével kapcsolatos témakörben találja.
Lásd még
.NET Desktop feedback