2012-02-09 17 views
5

Bu gibi benim usercontrol mülk tanımlı tetiklenir değil.DependencyProperty

<DataTemplate><local:ucTopicItem IsSelected="False" /></DataTemplate> 

Sorun ne olabilir?

+1

Sınıf ucMyControl, ucTopicItem nesnelerinin bir koleksiyonunu içeriyor mu? Yoksa aynı şey mi? DP'yi ucMyControl'e kaydediyorsunuz, ancak bir ucTopicItem üzerinde ayarlıyorsunuz. Ayrıca Register yerine RegisterAttached'i de denemek isteyebilirsiniz. – avanek

cevap

5

Doğrudan bağımlı bir mülkte özellik değiştirilen işleyiciyi kullanmalısınız. XAML ayarlamak zaman çağrılan sağlamak Bu şekilde: DP XAML ayarlandığında sizin DependencyProperty ayarlayıcı WPF tarafından çağrılan olmayacak

public static readonly DependencyProperty IsSelectedProperty = 
    DependencyProperty.Register("IsSelected", typeof(bool), typeof(ucMyControl), new PropertyMetadata(false, OnIsSelectedChanged)); 

private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
{ 
    // Implement change logic 
} 
+0

Lanet olsun, çarptım :) –

+0

Bunu yaptım, ama OnIsSelectedChanged hala çağrılmıyor. – Nickolodeon

+0

@Nickolodeon, PropertyChangedCallback'i [Register] 'da' PropertyMetadata' argümanı üzerinden kaydettirmelisiniz (http://msdn.microsoft.com/en-us/library/ms597502.aspx). – Clemens

İlgili konular