मैं कोई संबंधित समस्या थी - मैं अपने ContextMenu के लिए क्लिक करें घटनाओं के लिए माउस स्थिति पर कब्जा करना चाहता था। समस्या: मेरे मेनू का पैरेंट (एक छवि नियंत्रण) कमांड पैरामीटर एलिमेंटनाम द्वारा पहचाना नहीं गया था।
संदर्भ के लिए, बाध्यकारी त्रुटि मुझे प्राप्त हुआ, पहले नाम स्थान के लिए मेरे मेनू जोड़ने के लिए, था:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=imgArena'. BindingExpression:(no path); DataItem=null; target element is 'MenuItem' (Name='mnuAddItem'); target property is 'CommandParameter' (type 'Object')
जाहिर WPF संदर्भ मेनू अपने नियंत्रण से एक अलग दृश्य पेड़ के हैं, काफी बाध्यकारी बनाने निराशा होती।
कुछ शोध के बाद, मैं इस सरल ठीक है, जो मैं पीछे मेरी कोड के लिए निर्माता में रखा पाया:
NameScope.SetNameScope(mnuGrid, NameScope.GetNameScope(this));
कहाँ "mnuGrid" मेरे संदर्भ मेनू का नाम है।
ऐसा करने के बाद, मैं अपने नियंत्रण के पैरामीटर के रूप में अपना नियंत्रण पास करने में सक्षम था जैसे बीटा वल्गारिस ने ऊपर किया था।
<Image Name="imgArena" >
<Image.ContextMenu>
<ContextMenu Name="mnuGrid">
<MenuItem Header="Place _Entry" Name="mnuAddItem"
Command="{Binding AddEntryCmd}"
CommandParameter="{Binding ElementName=imgArena}" />
</ContextMenu>
<Image.ContextMenu>
</Image>
मामले में आप कैसे जवाब स्वीकार करने के लिए मैं की ओर [इस पोस्ट] क्या आप निर्देशित करने के लिए चाहते हैं नहीं पता था (http://meta.stackexchange.com:
संदर्भ के लिए, मेरी XAML इस तरह दिखता है/प्रश्न/5234 /)। –