2012-10-12 12 views
6

Açıkça uygulanan bir arabirim özelliğine kod arkasından bir bağ oluşturmaya çalışıyorum. Kod arkası bağlamanın nedeni, bağlı özelliğe giden yolun yalnızca çalışma zamanında belirlenebilmesidir. Xaml WPF - açık bir şekilde uygulanan arabirim özelliğinin arkasındaki koddan/iliştirilmiş davranıştan bağlanma

, (MainWindow.xaml örnek) da thusly bağlamak mümkündür:

<TextBox Text="{Binding (local:IViewModel.Property)}"/> 

ve aslında, kodda bağlanma MainWindow.xaml.cs (a benzer şekilde çalışır WPF, ad alanı eşlemeyi alabildiğinden beri,

.

Sorum, ad alanı eşlemesi olmadığında (örneğin, eklenmiş bir davranışta) böyle bir bağlama nasıl oluşturabilirim?

Şimdiden çok teşekkürler!

yukarıdaki PropertyPath geçirilen sözdizimi hakkında ayrıntılı bilgi için
var propertyInfo = typeof(IViewModel).GetProperty("Property"); 
var propertyPath = new PropertyPath("(0)", propertyInfo); 
var binding = new Binding 
{ 
    Path = propertyPath 
}; 

, PropertyPath.Path bkz: PropertyPath tam

cevap

9

belirtmek istiyorum.

+0

Mükemmel! Bir çekicilik – mickeyt

+0

+1 gibi çalışır. Bu özel tür indeksleme için bir sözdizimi referansına belki de bir link gönderebilirsiniz. Daha önce görmedim ve [PropertyPath XAML sözdizimi] (http://msdn.microsoft.com/en-us/library/ms742451.aspx) MSDN makalesinde bulamıyorum. Her zaman kullanmak zorunda olduğunu düşündüm. – Clemens

+1

@Clemens: Tamam, güncellendi. –

İlgili konular