wpf - Binding by ElementName in Resources failing when being used with DynamicResource but works with StaticResource -
एक WPF UserControl में मैं एक SolidColorBrush
की Color
कोड> यूएससी नियंत्रण पर निर्भरता संपत्ति के लिए संसाधन भाग में अगर मैं SolidColorBrush
को StaticResource
के साथ उपयोग करता है तो सब कुछ ठीक है, लेकिन अगर मैं DynamicResource
का उपयोग करने की कोशिश करता हूं तो बाध्यकारी त्रुटि के साथ विफल हो जाती है मैं इस मुद्दे के आसपास कम से कम एक StaticResource का उपयोग कर का उल्लेख करने से काम कर सकते हैं जबकि SolidColorBrush
मुझे पता है क्यों यह WPF की मेरी समझ में सुधार के लिए इस तरह से व्यवहार कर रहा है चाहता हूँ।
यहां है UserControl XAML, codebehind, और त्रुटि ...
<पूर्व वर्ग = "lang-एक्सएमएल prettyprint-ओवरराइड"> <कोड> & lt; UserControl x: कक्षा = "TestUserControl" एक्स: नाम = "MyUserControl" xmlns = " Http://schemas.microsoft.com/winfx/2006/xaml/presentation "xmlns: x =" http://schemas.microsoft.com/winfx/2006/xaml "& gt; & LT; UserControl.Resources & gt; & LT; SolidColorBrush x: कुंजी = "BrushKey" रंग = "{बाइंडिंग ElementName = MyUserControl, पथ = TestProp}" & gt; & lt; / SolidColorBrush & gt; & LT; /UserControl.Resources> & LT; StackPanel & gt; & Lt; टेक्स्टब्लॉक पृष्ठभूमि = "{DynamicResource BrushKey}" & gt; फ़ू & lt; / TextBlock & gt; & Lt;! - Uncommenting इस DynamicResource संदर्भ सहित सब कुछ काम करता है - & gt; & Lt;! - & lt; टेक्स्टब्लॉक पृष्ठभूमि = "{स्टेटिक रिसोर्स ब्रशके}" & gt; बार & lt; / TextBlock & gt; - & gt; & Lt; / StackPanel & gt; & Lt; / UserControl & gt;<कोड> सार्वजनिक कक्षा TestUserControl सार्वजनिक संपत्ति TestProp रंग के रूप में मिलता है वापसी getValue (TestPropProperty) समाप्ति सेट (ByVal मूल्य रंग के रूप में) setValue जाओ (TestPropProperty , मूल्य) समाप्ति सेट अंत संपत्ति सार्वजनिक तौर पर साझा ReadOnly TestPropProperty रूप DependencyProperty = DependencyProperty.Register ( "TestProp", GetType (रंग), GetType (TestUserControl), नई PropertyMetadata (Color.FromRgb (& amp; H0, & amp; एचबीसी, & amp; HC4 ))) अंत कक्षा
<कोड> System.Windows.Data त्रुटि: 4: 'संदर्भ के साथ ElementName = MyUserCont बंधन के लिए स्रोत नहीं खोजा जा सका ROL '। BindingExpression: पथ = TestProp; DataItem = बातिल; लक्ष्य तत्व 'सॉलिड कोलरब्रश' (हैशोड = 2967772 9); लक्ष्य संपत्ति 'रंग' (प्रकार 'रंग')
Comments
Post a Comment