private void SnapInDescriptorsWindow_SnapInUninstalled(object sender, SnapInDescriptorEventArgs e)
 {
     foreach (ListViewItem item in _listView.Items)
     {
         SnapInDescriptor descriptor = item.Tag as SnapInDescriptor;
         if (descriptor != null)
         {
             if (descriptor == e.Descriptor)
             {
                 item.ForeColor = SystemColors.GrayText;
             }
         }
     }
 }
 private void SnapInDescriptorsWindow_SnapInStopped(object sender, SnapInDescriptorEventArgs e)
 {
     this.UpdateStatus(e.Descriptor);
 }
		private void SnapInDescriptorsWindow_SnapInUninstalled(object sender, SnapInDescriptorEventArgs e)
		{
			foreach(ListViewItem item in _listView.Items)
			{
				SnapInDescriptor descriptor = item.Tag as SnapInDescriptor;
				if (descriptor != null)
				{
					if (descriptor == e.Descriptor)
					{
						item.ForeColor = SystemColors.GrayText;
					}
				}
			}
		}
		private void SnapInDescriptorsWindow_SnapInStopped(object sender, SnapInDescriptorEventArgs e)
		{
			this.UpdateStatus(e.Descriptor);
		}
		/// <summary>
		/// Raises the SnapInUninstalled event
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected virtual void OnSnapInUninstalled(object sender, SnapInDescriptorEventArgs e)
		{
			try
			{
				if (this.SnapInUninstalled != null)
					this.SnapInUninstalled(sender, e);
			}
			catch(System.Exception systemException)
			{
				System.Diagnostics.Trace.WriteLine(systemException);
			}
		}		
		/// <summary>
		/// Handles our own SnapInUninstalled event
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void OnInternalSnapInUninstalled(object sender, SnapInDescriptorEventArgs e)
		{
			// mark all of the descriptors that are missing dependencies
			SnapInDescriptor.MarkDescriptorsThatAreMissingDependencies(_descriptors);
		}