RoutedPropertyChangedEventHandler<T> Temsilci
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Özellik değeri değişikliklerini izleyen çeşitli yönlendirilmiş olayları işleyecek yöntemleri temsil eder.
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ür Parametreleri
- T
Değerdeki değişikliklerin bildirildiği özellik değerinin türü.
Parametreler
- sender
- Object
Olay işleyicisinin eklendiği nesne.
Olay verileri. Belirli olay tanımları, bir temsilci uygulamasının tür parametresi kısıtlamasıyla eşleşen kısıtlamanın tür parametresiyle bir türle kısıtlanır RoutedPropertyChangedEventArgs<T> .
Örnekler
Aşağıdaki örnek olay için ValueChanged bir işleyici yöntemi tanımlar ve ekler.
İşleyici, öğesini temel alır RoutedPropertyChangedEventHandler<T>ve kod örneğinin ikinci kesiminde tanımlanır ve genel parametresinin tür parametresi ile Doublekısıtlanır.
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
Bu özel örnek, olayın yönlendirilmiş olay özelliğini kullanmaz; olay, üzerinde tetiklenen aynı öğe üzerinde işlenir. Her zaman böyle değildir. Yönlendirilmiş bir olay için, olay kaynağının işleyicinin eklendiği nesneden farklı bir nesne olması mümkündür.
Açıklamalar
ve değerlerini temel alan RoutedPropertyChangedEventHandler<T> tür kısıtlanmış temsilciler kullanan olaylara örnek olarak verilebilir TreeView.SelectedItemChangedRangeBase.ValueChanged.
Uzantı Metotları
GetMethodInfo(Delegate) |
Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır. |