Возможно, это действительно простое исправление, но я неопытен в работе с событиями, поэтому я просто собираюсь спросить его.
У меня есть ListBox с ListBoxItems.Эти ListBoxItems будут связаны с источником данных, поэтому они будут меняться.Мне нужно, чтобы событие MouseDown вызывалось при выполнении действия MouseDown с любым из этих объектов ListBoxItem (потому что я выполняю перетаскивание).Так как значения меняются, я не могу ожидать связать события вместе в XAML, как показано ниже:
<ListBox Name="ListBox1">
<ListBoxItem MouseDown="MouseDownEventName">Item A</ListBoxItem>
<ListBoxItem MouseDown="MouseDownEventName">Item B</ListBoxItem>
<ListBoxItem MouseDown="MouseDownEventName">Item C</ListBoxItem>
</ListBox>
Это было бы легко, если бы у меня были статические значения, но так как значения в ListBox изменятся, япредпочел бы написать следующий XAML
<ListBox Name="ListBox1" MouseDown="MouseDownEventName">
//Binded Values
</ListBox>
Затем, когда выбран ListBoxItem, он будет выдавать сообщение о событии до этого MouseDownEventName, и я могу получить ListBox1.SelectedItem в то время, проблема вЯ пытаюсь это прямо сейчас, но это не работает.У меня есть следующий код для обработки MouseDown, который в настоящее время переписывает только содержимое метки, чтобы показать, что элемент был MouseDown.
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void ListBox_MouseDown(object sender, RoutedEventArgs e)
{
ListBox box = (ListBox)sender;
if (box != null && box.SelectedItem != null)
{
DragDrop.DoDragDrop(box, ItemListBox.SelectedItem, DragDropEffects.Move);
label1.Content = "MouseDown Event Fired";
}
}
}