2011-09-03 15 views
5

Salt okunur bir DependencyProperty içeren bir sınıfım var. Bu sınıftan, DependencyProperty numaralı okuyucuyu başka bir sınıfın başka bir sınıfının DepenendencyProperty koduna bağlamak istiyorum (koddan bağ oluştur).Başka bir salt okunur DependencyProperty okuyucusuna bağla BağımlılıkProperty

Bunu yapmak için bir imkan var mı? SetBinding(), DependencyPropertyKey parametresini parametre olarak kullanan bir aşırı yüklenmeye sahip değil gibi görünüyor. Ne gibi işlevler sağlamak için BindingOperations-sınıf görünüyor.

Soru formüle edilebilir: DependencyPropertyKey varsa DependencyProperty için bir bağlama oluşturabilir miyim?

+0

Bunun nasıl çalışması gerekiyor? Eğer her iki taraf da okuyabiliyorsa, OneWay bile her durumda işe yaramazsa, hayır? –

+1

@ H.B. Hayır, sadece DependencyProperty (DependencyPropertyKey) adlı okuyucunun anahtarına sahip olduğumdan, sınıfımın perspektifinden okumadım. Sadece sınıfın dışında. Bir CLR-Property'in özel belirleyicisi gibi bir şey - sınıfın içinden erişilebilir ancak diğer sınıflar için salt okunur bir özelliktir. http://msdn.microsoft.com/en-us/library/system.windows.dependencypropertykey.aspx – HCL

+0

Görüyorum; Her nasılsa, bunun yapılabileceğinden şüphe duyuyorum, mülk değiştirilmiş bir geri çağırma işlemini kolayca kaydedebilir ve değeri manuel olarak ayarlayabilirsiniz. –

cevap

2

Bu, FrameworkElement.SetBinding yönteminin ilk parametresi olarak yalnızca DependencyProperty kabul ettiği için bu mümkün değildir. Bunun yerine bir DependencyPropertyKey kabul ederse harika olurdu. Anahtar, sınıf dışında görünmediğinden, hala sınıfın dışında salt okunur olur, ancak sınıfın içinden bağlama için kullanabilirsiniz. Maalesef bu mümkün değil.

0

Bunu nasıl uygulayacağınıza dair iyi öneriler var mı?

Özel bir RW ​​bağımlılık özelliği uygulamaya çalışabilir, orijinal RO'yi ona bağlayabilir ve RW’nin geri çağrısında açığa çıkan RO'yi değiştirebilirsiniz. Ama bu bir hack gibi geliyor. Daha iyi seçenekler var mı?