Thursday, March 31, 2011

WPF Contextmenu For ListView item

If we want to use context menu in WPF Listview. Then we have to done 2 steps:

Bind your Listview for Contex Menu:


  <ListView Height="136" Background="#FFDBF3F3" BorderBrush="#FF40C01D"   
       HorizontalAlignment="Left" Margin="6,6,0,0" Name="zonelistView"   
             VerticalAlignment="Top" Width="722" >  
  <ListView.ContextMenu>  
          <ContextMenu Name="ZoneIformationList" StaysOpen="true" Background="WhiteSmoke">  
            <ContextMenu.BitmapEffect>  
             <BitmapEffectGroup/>  
            </ContextMenu.BitmapEffect>  
               <MenuItem Header="Edit" Name="EditZoneInfoContextMenu" Click="EditZoneInfoContextMenu_Click" />  
               <MenuItem Header="Remove" Name="RemoveZoneInfoContextMenu" Click="RemoveZoneInfoContextMenu_Click" />  
           </ContextMenu>  
  </ListView.ContextMenu>  
          <ListView.View>  
             <GridView>  
               <GridViewColumn Header="Branch ID"  
            Width="80" DisplayMemberBinding="{Binding Path=ZoneBranchId}" />  
               <GridViewColumn Header="Building ID"  
            Width="80" DisplayMemberBinding="{Binding Path=ZoneBuildingId}" />  
             </GridView>  
          </ListView.View>  
   </ListView>  

 

     
         

Now you can set action on Click Event. consider EditZoneInfoContextMenu 



   private void EditZoneInfoContextMenu_Click(object sender, RoutedEventArgs e)  
     {  
       FillZoneInformationField();  
     }  
           //Implement your method  
           private void FillZoneInformationField()  
     {  
       if (zonelistView.SelectedIndex > -1)  
       {  
         ObjEZoneSetup = (EZoneSetup) zonelistView.SelectedItem;  
         zoneIDtextBox.Text = ObjEZoneSetup.ZoneId;  
         zoneAisletextBox.Text = ObjEZoneSetup.ZoneAisle;  
         zonePositiontextBox.Text = ObjEZoneSetup.ZonePosition;  
         zoneTiretextBox.Text = ObjEZoneSetup.ZoneTire;  
         zoneInfotextBox.Text = ObjEZoneSetup.ZoneAdditionalInfo;  
         if (ObjEZoneSetup.ZoneStatus=='Y')  
         {  
           zoneActiveradioButton.IsChecked = true;  
         }  
         if (ObjEZoneSetup.ZoneStatus=='N')  
         {  
           zoneInactiveradioButton.IsChecked = true;  
         }  
         zonelistView.Items.Remove(zonelistView.SelectedItem);  
       }  
     }  




Download the latest sample

Enjoy.....!


Ensure that this project has Microsoft.Bcl.Build installed and packages.config is located next to the project file

In my Xamarin form application their was dependency Restclient on Microsoft.Bcl.Build Microsoft.Bcl. i just remove all using nuget and ...