tıkladıktan sonrazaten çalışıyor.
Bir işlem yapmak isterseniz, yollardan birinin menüde Tıklat işlevinde hangi öğenin tıklandığını kontrol etmektir.
<ListBox Name="someListBox">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Click="MenuItemDelete_Click"/>
</ContextMenu>
</ListBox.ContextMenu>
<ListBoxItem>...</ListBoxItem>
<ListBoxItem>...</ListBoxItem>
<ListBoxItem>...</ListBoxItem>
</ListBox>
Ve işlevi sonraki olabilir: İşte
senin liste başka bir versiyonudur:
private void MenuItemDelete_Click(object sender, RoutedEventArgs e)
{
if (someListBox.SelectedIndex == -1) return;
// Hypothetical function GetElement retrieves some element
var element = GetElement(someListBox.SelectedIndex);
// Hypothetical function DeleteElement
DeleteElement(element);
}
5 Mart 2012 Güncellendi Örneğin, bir sonraki liste vardır. Liste kutusuna değil, liste kutusu öğelerine bir bağlam menüsü ekleyebilirsiniz. Örneğin: <ListBox Name="someListBox" MouseDown="someListBox_MouseDown">
<ListBox.Resources>
<!--Defines a context menu-->
<ContextMenu x:Key="MyElementMenu">
<MenuItem Header="Delete" Click="MenuItemDelete_Click"/>
</ContextMenu>
<!--Sets a context menu for each ListBoxItem in the current ListBox-->
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="ContextMenu" Value="{StaticResource MyElementMenu}"/>
</Style>
</ListBox.Resources>
<ListBoxItem>...</ListBoxItem>
<ListBoxItem>...</ListBoxItem>
<ListBoxItem>...</ListBoxItem>
</ListBox>
1) Eğer liste kutusunda boş bir alanda sağ tıklandığında tüm öğeleri unsellect olacaktır Bu fonksiyon: Eğer lisboxt öğesini tıkladığınızda
private void someListBox_MouseDown(object sender, MouseButtonEventArgs e)
{
someListBox.UnselectAll();
}
2), bu mavi. Liste kutusu öğesini sağ tıklattığınızda, hala mavi, ancak bir içerik menüsü görüntülenirse, liste kutusu gri olur, belki de bu öğe bir odağı kaybettiği için olur.
3) işlevini silme çalışıyor:
private void MenuItemDelete_Click(object sender, RoutedEventArgs e)
{
if (someListBox.SelectedIndex == -1)
{
return;
}
someListBox.Items.RemoveAt(someListBox.SelectedIndex);
}
sayesinde ben akşam ve güncelleme de bu çalışacaktır. – user979033
Tamam teşekkürler, şimdi tıklattığım dosya adını (yolu) nasıl "yakalayabilirim"? – user979033
Menüde 3 fonksiyon eklemek istiyorum (menüdeki her bir seçenek farklı işlevlere sahip olacaktır) bu yüzden hangi öğenin tıklandığını kontrol etmek gerekiyor? ve fonksiyonun son 2 satırını anlamadım MenuItemDelete_Click – user979033