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.....!