2010-08-30 22 views
9

Bir kaynağa (DynamicResource) ve bu kaynaktaki erişim özelliklerine bağlanmak istiyorum, ancak bunu yapmanın bir yolu var mı?Dinamik kaynak ile bağlama ve yolu belirleme

(Görsel stüdyoda xaml editörü kurucusundan varsayılan değerleri resimlemek istiyorum. DataContext aracılığıyla ne de benim Pencere sınıfı eklenen bir özellik sayesinde bir nesneyi başvururken olanlar görülemez ...)

çalışmıyor xaml: (besteci içinde değil zamanında eserler ...)

<Window ... > 
    <Window.Resources> 
     <local:MyClass x:Key="myResource" /> 
    </Window.Resources> 
    <StackPanel> 
     <Button Content="{Binding Source={DynamicResource myResource} Path=Property1}" /> 
     <Button Content="{Binding Source={DynamicResource myResource} Path=Property2}" /> 
    </StackPanel> 
</Window> 

sınıfı ile (muhtemelen INotifyPropertyChanged uygulamak gerekir):

public class MyClass 
{ 
    public MyClass() 
    { 
     this.Property1 = "Ok"; 
     this.Property2 = "Cancel"; 
    } 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

cevap

19

Bu nedenle, DynamicResource işaretleme uzantısı yalnızca bir bağımlılık özelliğinde kullanılabilir, çünkü kaynak değiştiğinde güncelleştirilmesi gerekir. Ve Binding.Source bir bağımlılık özelliği ...

Çözüm olarak değil, DynamicResource ile düğmeye DataContext ayarlayabilirsiniz:

<Button DataContext="{DynamicResource myResource}" Content="{Binding Path=Property1}" /> 
<Button DataContext="{DynamicResource myResource}" Content="{Binding Path=Property2}" /> 
+1

+1, bu çevrede daha temiz bir işi gibi görünüyor ve ben ve bunu iyi bir etki yaptı – marr75

+1

Cevabı kabul etmeyi unutmayın;);) –

İlgili konular