Ekli bir bağımlılık özelliğine kısıtlama eklemenin bir yolu var, böylece yalnızca belirli bir türe uygulanabiliyor, meta verilerde bir şey var mı?Bağlı bağımlılık özelliğinin kapsamını sınırlamak için kısıtlama
Değilse, ekli DP'lerin statik Get-and Set-yöntemlerini açık bir şekilde yazmak anlamlı mıdır?
Örnek:
Ben mesela şu bildiriyi varsa:
public static int GetAttachedInt(DependencyObject obj) {
return (int)obj.GetValue(AttachedIntProperty);
}
public static void SetAttachedInt(DependencyObject obj, int value) {
obj.SetValue(AttachedIntProperty, value);
}
public static readonly DependencyProperty AttachedIntProperty =
DependencyProperty.RegisterAttached("AttachedInt", typeof(int),
typeof(Ownerclass), new UIPropertyMetadata(0));
sadece metin kutularının uygulamak için, aşağıdaki gibi değiştirmek anlamlı olurdu? GetValue ve SetValue herhangi bir türü için artık kullanılmamaktadır ve işaretlemeye de attachement sınırlamak için hiçbir olasılık olabilir çünkü bu, bir tutmayabiliyor yol açtığı için
public static int GetAttachedInt(TextBox textBox) {
return (int)textBox.GetValue(AttachedIntProperty);
}
public static void SetAttachedInt(TextBox textBox, int value) {
textBox.SetValue(AttachedIntProperty, value);
}
public static readonly DependencyProperty AttachedIntProperty =
DependencyProperty.RegisterAttached("AttachedInt", typeof(int),
typeof(Ownerclass), new UIPropertyMetadata(0));
sorum vardır.
Daha önce yaptığım şey, PropertyChanged işleyicisine bir istisna ekledim ve yalnızca xy türlerine izin verilen bir istisna getirdim.
Ne düşünüyorsunuz?
İyi soru ... Umarım yeni cevabım çözer. – Noldorin
Meta veriler için başka bir cevap istemiştim ama hiçbir şey görmedim. Erişim yöntemlerinin beyan edilmesi için onun bir politik sorun olduğunu düşünüyorum. Bunu yapmak için sağduyuluysa, yapacağım. Ama benim için biraz büyük bir kilit ile balkon kapatmak gibi ama ana kapı kilidi açık bırakın. Ancak en azından set-and yöntemleri, ekli dp'nin amacını gösterir. Tavsiyenizi kullanacağım, ancak PropertyChanged-işleyicisindeki hedef türünü kontrol etmeye devam edeceğim. Bu nedenle, bir kullanıcı DP'yi yanlış bir kontrolde kullanmaya çalıştığında, tasarımcıya bir istisna uygulayacaktır. – HCL