मेरे पास निम्न टेक्स्टब्लॉक के साथ एक WPF संसाधन डिक्शनरी है:एक WPF संसाधन डिक्शनरी के भीतर StaticResource का दायरा क्या है?
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis}}">
</TextBlock>
संसाधन डिक्शनरी के तहत App.xaml में संसाधन डिक्शनरी शामिल है:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyResourceDictionary.xaml"/>
App.xaml में मैंने BoolToVis कनवर्टर को परिभाषित किया है (फिर से, Application.Resources
के तहत)
<BooleanToVisibilityConverter x:Key="BoolToVis" />
जब मैं अपना ऐप अप शुरू करता हूं - मुझे निम्न XamlParseException मिलता है:
" पर मान प्रदान करें" System.Windows.Markup.StaticResourceHolder ' ने अपवाद फेंक दिया। "
इनर एक्सेप्शन है:
"संसाधन 'BoolToVis' नहीं मिला। संसाधन नाम केस संवेदनशील हैं।"
मैं इस कनवर्टर को सीधे App.xaml के साथ संदर्भित करने में सक्षम हूं (वास्तव में, विशेष XAML घोषणा समान है) और अन्य उपयोगकर्ता नियंत्रणों के बिना कोई समस्या नहीं है।
कोड का यह विशेष बिट भी .NET 4.0 आरसी (और बीटा 2) के तहत ठीक काम करता है। यह त्रुटि केवल तब शुरू हो रही है जब मैंने .NET 4.0 RTM में अपग्रेड किया था।
मैं MyResourceDictionary.xaml के भीतर एक और BooleanToVisibilityConverter
घोषित करके इसके आसपास काम करने में सक्षम हूं और इसे इस तरह से संदर्भित करता हूं:
<TextBlock Visibility="{Binding Converter={StaticResource MyBoolProp ResourceKey=BoolToVis2}}">
</TextBlock>
मुझे ऐसा करने की आवश्यकता क्यों है?
हम शायद दूसरा मार्ग लेंगे। इतनी परेशान बात यह है कि यह कोड आरसी में ठीक है, लेकिन आरटीएम नहीं। हमारी देव टीम किसके पास है, इस संबंध में "मिश्रित" है। प्रारंभिक गोद लेने के रूप में, मैंने छोटी स्ट्रॉ खींचा :)। धन्यवाद! –