RoutedPropertyChangedEventHandler<T> Делегат
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет методы, которые будут обрабатывать различные маршрутизируемые события, отслеживающие изменения значения свойства.
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
Тип значения свойства, в котором сообщаются изменения в значении.
Параметры
- sender
- Object
Объект, в котором подключен обработчик событий.
Данные события. Определенные определения событий будут ограничивать RoutedPropertyChangedEventArgs<T> тип, при этом параметр типа ограничения соответствует ограничению типа, соответствующему ограничению параметра типа реализации делегата.
Примеры
В следующем примере определяется и присоединяется метод обработчика ValueChanged для события.
Обработчик основан RoutedPropertyChangedEventHandler<T>на и определяется во втором сегменте примера кода с параметром типа универсального ограниченного 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
Этот конкретный пример не использует характеристику перенаправленного события события; Событие обрабатывается в том же элементе, на который он вызывается. Это не всегда так. Для перенаправленного события возможно, что источник события отличается от объекта, в котором подключен обработчик.
Комментарии
Примеры событий, использующих делегаты с ограниченными типами на RoutedPropertyChangedEventHandler<T> основе включения TreeView.SelectedItemChanged и RangeBase.ValueChanged.
Методы расширения
| Имя | Описание |
|---|---|
| GetMethodInfo(Delegate) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |