मेरे पास एक सूची दृश्य के साथ उपयोगकर्ता नियंत्रण है जिसमें एक ऑब्जर्जेबल कोलेक्शन से सरल आइटम शामिल हैं। मैं ListView में चयनित क्या है, इस पर निर्भर करता है कि उस सूची दृश्य के ContextMenu को आइटम शामिल करना चाहूंगा। यदि कोई आइटम नहीं चुना गया है, तो कुछ मेनूइटम दिखाई नहीं दे सकते हैं।बाइंड कॉन्टेक्स्टमेनू मेनू मेनू दृश्य दृश्य सूची दृश्यता
जब मैं ContextMenu खोलता हूं तो मेरा कनवर्टर भी नहीं कहा जाता है। बंधन गलत हो रहा है, मैं उत्पादन विंडो में यह लगता है:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=listView'. BindingExpression:Path=SelectedItem; DataItem=null; target element is 'MenuItem' (Name=''); target property is 'Visibility' (type 'Visibility')
मैं क्या गलत है समझ में नहीं आता और वेब पर खोज कर यह पता लगा नहीं कर सका।
<UserControl x:Class="MyApp.DatabaseControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:MyApp"
Height="Auto"
Width="Auto">
<UserControl.Resources>
<l:ValueToVisibilityConverter x:Key="valueToVisibility" />
</UserControl.Resources>
<Grid>
<ListView x:Name="listView" ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn Width="140" Header="First Name" DisplayMemberBinding="{Binding FirstName}"/>
<GridViewColumn Width="140" Header="Last Name" DisplayMemberBinding="{Binding LastName}" />
</GridView>
</ListView.View>
<ListView.ContextMenu>
<ContextMenu>
<MenuItem
Header="Open"
Visibility="{Binding SelectedItem, ElementName=listView, Converter={StaticResource valueToVisibility}}"/>
<Separator/>
<MenuItem Header="Add..."/>
<MenuItem Header="Remove"/>
</ContextMenu>
</ListView.ContextMenu>
</ListView>
</Grid>
धन्यवाद एक बहुत:
यहाँ कुछ सरल कोड है!
धन्यवाद, यह चाल है !! – fury
यदि यह आपके प्रश्न का उत्तर देता है, तो आपको इसे स्वीकृत के रूप में चिह्नित करना चाहिए ताकि यह अब अनुत्तरित प्रश्न के रूप में दिखाई न दे। – Andy