2011-02-06 24 views
5

Sayfanın içinde yerel bir değişkene dayanarak rengini ayarlamak istediğim bir UI öğem var (aslında bir modülde aslında, ancak sayfaya taşıyabiliyorum). MaalesefWP7 Yerel Değişken Bağlama

WPF Binding to local variable

:

Ben FindAncestor kullanarak ana sınıfa bağlanmasını RelativeSource değişkene bir özellik yapım ve ayarlayarak yerel değişkene bir UI öğesi bağlayabilir WPF birinde bakın Silverlight, FindAncestor modunu desteklemiyor gibi görünüyor.

Olası bir çözüm mü yoksa veya özel bir sınıfın örneğini oluşturmak zorunda mıyım?

cevap

7

Son birkaç hafta içinde Silverlight'tan WPF'ye çok fazla sıçradım, dolayısıyla aşağıdaki fikir uçabilir veya uçmayabilir.

Sayfanızda üzerinde özellik adı var mı? Değilse, ayarlayın (x: Name = "MyPage"). Sonra

Yapabileceğiniz:

Fill="{Binding ElementName=MyPage, Path=MyProperty}" 

ver o

+0

+1, Aynı cevabı göndermek üzereydim. ElementName bağlama, FindAncestor eksikliğinden kaynaklanan olağan (daha zayıf) bir çözümdür. FWIW, FindAncestor ciltleme, Silverlight 5'te geliyor, bu yüzden eninde sonunda telefona doğru gidiyor. –

+0

Hmm, bunu basit tutmak için bir tamsayı özelliği ile bir atış verdi. "MyPage" sayfasını adlandırın, ardından UI öğesinde, koyun: ''. Sayfa kodunda: 'Özellik gDirection Tamsayı = 45 'var. Bu yüke bir istisna atar. Cilt 45 ile değiştirirseniz, iyi çalışıyor, bu yüzden bağlayıcı çalışmıyor gibi görünüyor ... – amb9800

+0

istisna ne? – Mark