RoutedPropertyChangedEventHandler<T> Delegált
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Olyan metódusokat jelöl, amelyek a tulajdonságértékek változásait nyomon követő különböző irányított eseményeket kezelik.
generic <typename T>
public delegate void RoutedPropertyChangedEventHandler(System::Object ^ sender, RoutedPropertyChangedEventArgs<T> ^ e);
public delegate void RoutedPropertyChangedEventHandler<T>(object sender, RoutedPropertyChangedEventArgs<T> e);
type RoutedPropertyChangedEventHandler<'T> = delegate of obj * RoutedPropertyChangedEventArgs<'T> -> unit
Public Delegate Sub RoutedPropertyChangedEventHandler(Of T)(sender As Object, e As RoutedPropertyChangedEventArgs(Of T))
Típusparaméterek
- T
Annak a tulajdonságértéknek a típusa, amelyben az értékváltozásokat jelentik.
Paraméterek
- sender
- Object
Az az objektum, amelyhez az eseménykezelő csatlakoztatva van.
Az esemény adatai. Az egyes eseménydefiníciók egy típushoz lesznek korlátozva RoutedPropertyChangedEventArgs<T> , és a kényszer típusparamétere megfelel a delegált implementáció típusparaméter-kényszerének.
Példák
Az alábbi példa egy kezelőmetódust határoz meg és csatol az ValueChanged eseményhez.
A kezelő a RoutedPropertyChangedEventHandler<T>kód példa második szegmensében van definiálva, és az általános paraméter típusparaméterével van korlátozva Double.
Slider childrenCountSlider = (Slider)LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountSlider");
childrenCountSlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(OnChildrenCountChanged);
Dim childrenCountSlider As Slider = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountSlider"), Slider)
AddHandler childrenCountSlider.ValueChanged, AddressOf OnChildrenCountChanged
private void OnChildrenCountChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
int childrenCount = (int)Math.Floor(e.NewValue + 0.5);
// Update the children count...
AutoIndexingGrid g = (AutoIndexingGrid)LogicalTreeHelper.FindLogicalNode(myWindow, "TargetGrid");
while (g.Children.Count < childrenCount)
{
Control c = new Control();
g.Children.Add(c);
c.Style = (Style)c.FindResource("ImageWithBorder");
}
while (g.Children.Count > childrenCount)
{
g.Children.Remove(g.Children[g.Children.Count - 1]);
}
// Update TextBlock element displaying the count...
TextBlock t = (TextBlock)LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountDisplay");
t.Text = childrenCount.ToString();
}
Private Sub OnChildrenCountChanged(ByVal sender As Object, ByVal e As RoutedPropertyChangedEventArgs(Of Double))
Dim childrenCount As Integer = CInt(Fix(Math.Floor(e.NewValue + 0.5)))
' Update the children count...
Dim g As AutoIndexingGrid = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "TargetGrid"), AutoIndexingGrid)
Do While g.Children.Count < childrenCount
Dim c As New Control()
g.Children.Add(c)
c.Style = CType(c.FindResource("ImageWithBorder"), Style)
Loop
Do While g.Children.Count > childrenCount
g.Children.Remove(g.Children(g.Children.Count - 1))
Loop
' Update TextBlock element displaying the count...
Dim t As TextBlock = CType(LogicalTreeHelper.FindLogicalNode(myWindow, "ChildrenCountDisplay"), TextBlock)
t.Text = childrenCount.ToString()
End Sub
Ez a konkrét példa nem használja az esemény irányított esemény jellemzőjét; az esemény kezelése ugyanazon az elemen történik, amelyen az esemény fel van emelve. Ez nem mindig így van. Irányított esemény esetén lehetséges, hogy az esemény forrása egy másik objektum, mint az az objektum, amelyhez a kezelő csatlakoztatva van.
Megjegyzések
Példák olyan eseményekre, amelyek típuskorlátozott meghatalmazottakat használnak a belefoglalás RoutedPropertyChangedEventHandler<T> és TreeView.SelectedItemChangeda RangeBase.ValueChanged .
Bővítő metódusok
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Lekéri a megadott meghatalmazott által képviselt metódust képviselő objektumot. |