Я столкнулся с той же проблемой и нашел здесь полезные шаги, которые сэкономили мое время. Надеюсь, что приведенное ниже изображение поможет вам -
Window-> Preferences-> General-> Network Connection
Измените Active Provider Native на Manual, если проблема не существует решены с помощью шагов, упомянутых в снимке. Убедитесь, что HTTP / HTTPS должен быть проверен, и если для ваших настроек прокси-сервера требуется какой-либо IP-адрес, вы должны также указать IP-адрес прокси-сервера в имени хоста и номера порта.
Я использую что-то подобное, чтобы срабатывать только при двойном щелчке ListViewItem, а не, например, когда вы дважды щелкаете заголовок ListView.
private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DependencyObject obj = (DependencyObject)e.OriginalSource;
while (obj != null && obj != myListView)
{
if (obj.GetType() == typeof(ListViewItem))
{
// Do something here
MessageBox.Show("A ListViewItem was double clicked!");
break;
}
obj = VisualTreeHelper.GetParent(obj);
}
}
It's annoying, but the best way to do it is something like:
<DataTemplate Name="MyCoolDataTemplate">
<Grid Loaded="HookLVIClicked" Tag="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}">
<!-- your code here -->
</Grid>
</DataTemplate>
Then in the code:
public void HookLVIClicked(object sender, RoutedEventArgs e) {
var fe = (FrameworkElement)sender;
var lvi = (ListViewItem)fe.Tag;
lvi.MouseDoubleClick += MyMouseDoubleClickHandler;
}
В событии ListBox DoubleClick получите элемент selecteditem (s) из списка, и вот вы.
void ListBox1DoubleClick(object sender, EventArgs e)
{
MessageBox.Show(string.Format("SelectedItem:\n{0}",listBox1.SelectedItem.ToString()));
}
Либо используйте событие MouseDoubleClick, а также все события MouseClick имеют счетчик кликов в переменной eventargs 'e'. Итак, если e.ClickCount == 2, то выполняется двойной щелчок.
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="MouseDoubleClick" Handler="listViewItem_MouseDoubleClick" />
</Style>
</ListView.ItemContainerStyle>
The only difficulty then is if you are interested in the underlying object the listviewitem maps to e.g.
private void listViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
ListViewItem item = sender as ListViewItem;
object obj = item.Content;
}
Мне также нужно было. Я обнаружил, что на MSDN:
http://msdn.microsoft.com/en-us/library/system.windows.forms.listView.activation.aspx
Я думаю, что этот делегат для этого.