2010-08-30 10 views
9

निर्दिष्ट करना है, मैं संसाधन (डायनामिक रिसोर्स) से जुड़ना चाहता हूं और उस संसाधन पर गुणों का उपयोग करना चाहता हूं, लेकिन ऐसा करने का कोई तरीका है?गतिशील संसाधन के साथ कैसे बाध्य करें और पथ

(मैं दृश्य स्टूडियो में XAML संपादक में निर्माता से मूलभूत मूल्यों कल्पना करने के लिए चाहते हैं। वे जब DataContext के माध्यम से और न ही एक संपत्ति मेरी खिड़की वर्ग पर जोड़ा के माध्यम से एक वस्तु को संदर्भित नहीं देखा जा सकता ...)

काम नहीं कर रहा XAML: (संगीतकार में लेकिन रनटाइम पर नहीं काम करता है ...)

<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> 

वर्ग के साथ (जो शायद INotifyPropertyChanged लागू करने की आवश्यकता):

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

उत्तर

19

ऐसा इसलिए है क्योंकि DynamicResource मार्कअप एक्सटेंशन केवल निर्भरता संपत्ति पर उपयोग किया जा सकता है, क्योंकि संसाधन में परिवर्तन होने पर इसे अपडेट करने की आवश्यकता होगी। और Binding.Source निर्भरता संपत्ति ...

समाधान के लिए नहीं है, आप DynamicResource साथ बटन के DataContext सेट कर सकते हैं:

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

+1, यह एक क्लीनर काम के आसपास हो रहा है और मैं ' मैंने इसे अच्छे प्रभाव के लिए किया है – marr75

+1

तब जवाब स्वीकार करना न भूलें;) –

संबंधित मुद्दे