में बुलाया है, मैं कोड व्यू से छुटकारा पाने के लिए अपने व्यू मॉडल्स में रिलेकॉमैंड्स का उपयोग कर रहा हूं। रिलेकॉमैंड्स इस स्थिति को छोड़कर काम कर रहे हैं: व्यूमोडेल जिसमें रिलेकॉमैंड्स को परिभाषित किया गया है, डेटाैकेंटेक्स्ट के परिवर्तन के साथ बदल दिया गया है। यदि डेटाकॉन्टेक्स्ट परिवर्तन के बाद एक आदेश निकाल दिया जा रहा है, तो इसे "पुराने" व्यूमोडेल में निकाल दिया जाता है। डिबगिंग करते समय मैं देख सकता हूं कि गुण पुराने डेटाकॉन्टेक्स्ट से हैं। लेकिन दृश्य में सबकुछ ठीक है क्योंकि सही व्यूमोडेल का सही डेटा प्रदर्शित होता है।रिलेकॉमैंड ने "पुराना" डेटाकॉन्टेक्स्ट
तो क्या यह संभव है कि बाध्य कमांड डेटाकॉन्टेक्स्ट के परिवर्तन पर प्रतिक्रिया करने में सक्षम न हों? या क्या कुछ और गलत हो सकता है?
यहाँ कोड का एक स्निप:
<TabControl x:Name="TestView" DataContext="{Binding Path=SelectedParentElement}"
TabStripPlacement="Top" ItemsSource="{Binding Path=ChildElements, Mode=OneWay}"
SelectedValue="{Binding Path=SelectedChildElement, Mode=TwoWay}">
<TabControl.ContextMenu>
<ContextMenu>
<MenuItem Header="Klassifikation" Name="Klassifikation">
<MenuItem Header="Kindebene" Name="KlassisfizierendNext" Command="{Binding KlassifizierendNextCommand}"/>
</MenuItem>
</ContextMenu>
</TabControl.ContextMenu>
.......
</TabControl>
TabControl के DataContext सही ढंग से बदल रहा है, लेकिन आदेश को बदलने के बाद पुराने DataContext में बुलाया जा रहा है।
मैं ContextMenus पर बाइंडिंग के साथ वास्तव में एक ही समस्या थी। मुझे लगता है कि डेटाकॉन्टेक्स्ट बदलते समय मैं बाध्यकारी मैन्युअल रूप से रीफ्रेश कर दूंगा। – Botz3000