RoutedPropertyChangedEventHandler<T> Delegát
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje metody, které budou zpracovávat různé směrované události, které sledují změny hodnot vlastností.
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))
Parametry typu
- T
Typ hodnoty vlastnosti, kde jsou hlášeny změny hodnoty.
Parametry
- sender
- Object
Objekt, ke kterému je připojena obslužná rutina události.
Data události Definice konkrétních událostí budou omezeny RoutedPropertyChangedEventArgs<T> na typ s parametrem typu omezení, které odpovídá omezení parametru typu v implementaci delegáta.
Příklady
Následující příklad definuje a připojí metodu obslužné rutiny ValueChanged pro událost.
Obslužná rutina je založená na RoutedPropertyChangedEventHandler<T>a je definována v druhém segmentu příkladu kódu s parametrem typu obecného omezeného na 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
Tento konkrétní příklad nepoužívá vlastnost routed-event události; událost je zpracována ve stejném prvku, pro který je aktivována. Ne vždy tomu tak je. U směrované události je možné, že zdrojem události je jiný objekt než objekt, ke kterému je připojena obslužná rutina.
Poznámky
Příklady událostí, které používají typově omezené delegáty na RoutedPropertyChangedEventHandler<T> základě zahrnutí TreeView.SelectedItemChanged a RangeBase.ValueChanged.
Metody rozšíření
GetMethodInfo(Delegate) |
Získá objekt, který představuje metodu reprezentovanou zadaným delegátem. |