गायब हो जाता है निम्नलिखित सरल कोड विंडो में परिभाषित मेनूइटम का पुन: उपयोग करने का प्रयास करता है। दो अलग मेनू पर स्रोत।डब्ल्यूपीएफ एक्सएएमएल परिभाषित मेनूइटम रीयूज काम करना शुरू कर देता है, फिर
<Window x:Class="WpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<collections:ArrayList x:Key="menuItemValues">
<MenuItem Header="First"/>
<MenuItem Header="Second"/>
<MenuItem Header="Third"/>
</collections:ArrayList>
<MenuItem x:Key="menuItem" x:Shared="False"
ItemsSource="{StaticResource menuItemValues}"
Header="Shared menu item"/>
</Window.Resources>
<StackPanel>
<Menu HorizontalAlignment="Left" VerticalAlignment="Top">
<StaticResource ResourceKey="menuItem"/>
<StaticResource ResourceKey="menuItem"/>
</Menu>
</StackPanel>
</Window>
यह बहुत अच्छा शुरू होता है और जब आप मेनू का चयन करते हैं, तो सभी ठीक दिखते हैं।
लेकिन जब आप पहली बार मेनू में वापस नेविगेट, MenuItems गायब हो जाते हैं:
तो दूसरा करता है
कोई बता सकता है कि मेनू गायब क्यों होता है और एक इसे काम करने के लिए रास्ता?
यह एक अन्य SO question की जांच करते समय खोजा गया था जो अपवाद प्राप्त कर रहा था। मैंने another SO question पर चर्चा की गई रणनीति का उपयोग करने की कोशिश की और यह तब तक समस्या को हल करने लग रहा था जब तक कि आप दूसरी बार मेनू पर नेविगेट नहीं करते और यह गायब हो जाता है।
मैं 2 अलग मशीनों पर इस मुद्दे reproduced है:
- विन 10, VS2013 ULT V12.0.40629.00 अद्यतन 5, .नेट V4.6.0138
- 7 विन, VS2013 प्रेम V12.0.31101। 00 अद्यतन 4, .नेट V4.5.51209
ध्यान में रखते हुए कि यह कैसे इस्तेमाल किया जा रहा है, तो आप का प्रयास किया 'स्टेटिक के बजाय DynamicResource'? –
@ChrisW। - अच्छा सुझाव - मैंने बस टैग को स्विच करने का प्रयास किया और इसके कारण 'XAMLParseException: A' DynamicResourceExtension 'केवल निर्भरता ऑब्जेक्ट की निर्भरता प्रॉपर्टी पर सेट किया जा सकता है। – Taterhead
आह हाँ, आइटमसोर्स, समझ में आता है। हम्म, मैं कोशिश करूँगा और उस पर स्टू करूंगा। –