클래스에서 ListBoxItem에 대한 DoubleClick 이벤트를 작성했습니다. listBox 항목을 클릭하면 해당 항목 만 반환됩니다. 하지만 제 경우에는 단일 항목을 클릭했지만 모든 항목이 반환되고 "InvalidCastException"이 발생합니다. 그래서, 어떻게해야 하나의 항목을 얻을 변경해야합니다.'System.InvalidCastException'유형의 첫 번째 예외가 발생했습니다.
private void ListBoxItem_DoubleClick(object sender, RoutedEventArgs e)
{
//Submit clicked Entry
Harvest_TimeSheetEntry entryToPost = (Harvest_TimeSheetEntry)sender;
if (!entryToPost.isSynced)
{
//Check if something is selected in selectedProjectItem For that item
if (entryToPost.ProjectNameBinding == "Select Project")
MessageBox.Show("Please Select a Project for the Entry");
else
Globals._globalController.harvestManager.postHarvestEntry(entryToPost);
}
else
{
//Already synced.. Make a noise or something
MessageBox.Show("Already Synced;TODO Play a Sound Instead");
}
}
In xml:
<ListBox x:Name="listBox1" ItemsSource="{Binding}" Margin="0,131,0,59" ItemTemplateSelector="{StaticResource templateSelector}" ListBoxItem.MouseDoubleClick="ListBoxItem_DoubleClick"/>
어떤 캐스트 라인이 잘못된 캐스트 예외를 발생시키고 있습니까? 보낸 사람이 Harvest_TimeSheetEntry인지 확인 하시겠습니까? 귀하의 설명에 기초 나는 그것이 있다고 생각하지 않습니다. –
ListBox.SelectedItem을 사용하여 두 번 클릭 이벤트에서 클릭 된 항목을 가져올 수 있습니다. –
이 줄에서는 예외 - Harvest_TimeSheetEntry entryToPost = (Harvest_TimeSheetEntry) 보낸 사람을 표시합니다. – Dinesh