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 tabanlıdır RoutedPropertyChangedEventHandler<T>ve kod örneğinin ikinci kesiminde, genel parametresinin tür parametresi ile kısıtlanmış olarak Doubletanımlanı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ı, tetiklenen aynı öğede işlenir. Her zaman böyle değildir. Yönlendirilmiş bir olay için, olayın 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ı
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır. |