これはおそらく非常に簡単な修正ですが、私はイベントの操作に不慣れなので、質問するだけです.
ListBoxItems を含む ListBox があります。これらの ListBoxItems はデータ ソースにバインドされるため、変更されます。これらの ListBoxItem のいずれかで MouseDown アクションが実行されたときに、MouseDown イベントを発生させる必要があります (ドラッグ アンド ドロップを行っているため)。値が変化しているため、次のように 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";
}
}
}