Доберитесь объект дважды щелкают по событию listview

Я столкнулся с той же проблемой и нашел здесь полезные шаги, которые сэкономили мое время. Надеюсь, что приведенное ниже изображение поможет вам -

Window-> Preferences-> General-> Network Connection

Измените Active Provider Native на Manual, если проблема не существует решены с помощью шагов, упомянутых в снимке. Убедитесь, что HTTP / HTTPS должен быть проверен, и если для ваших настроек прокси-сервера требуется какой-либо IP-адрес, вы должны также указать IP-адрес прокси-сервера в имени хоста и номера порта. enter image description here

37
задан Brad 29 March 2016 в 12:51
поделиться

6 ответов

Я использую что-то подобное, чтобы срабатывать только при двойном щелчке 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);
    }
}
37
ответ дан 27 November 2019 в 04:05
поделиться

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;
} 
0
ответ дан 27 November 2019 в 04:05
поделиться

В событии ListBox DoubleClick получите элемент selecteditem (s) из списка, и вот вы.

void ListBox1DoubleClick(object sender, EventArgs e)
    {
        MessageBox.Show(string.Format("SelectedItem:\n{0}",listBox1.SelectedItem.ToString()));
    }
0
ответ дан 27 November 2019 в 04:05
поделиться

Либо используйте событие MouseDoubleClick, а также все события MouseClick имеют счетчик кликов в переменной eventargs 'e'. Итак, если e.ClickCount == 2, то выполняется двойной щелчок.

0
ответ дан 27 November 2019 в 04:05
поделиться
<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;
}
64
ответ дан 27 November 2019 в 04:05
поделиться

Мне также нужно было. Я обнаружил, что на MSDN:

http://msdn.microsoft.com/en-us/library/system.windows.forms.listView.activation.aspx

Я думаю, что этот делегат для этого.

5
ответ дан 27 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: