在wpf xaml中单击时获取列表框项的名称

7bsow1i6  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(155)

我正在尝试从listBoxItem onClick获取显示的值。
我已经建立了一个测试按钮,这是做什么,我需要从列表:

private void getDomains_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            string selected = allDomains_ListBox.SelectedItem.ToString();
            MessageBox.Show("Item is available " + selected);

        }
        catch (Exception ex)
        {
            MessageBox.Show("Item is not available");

        }
    }

但是,如果单击ListItem,则需要此行为,如下所示:

private void allDomains_ListBox_MouseLeftButtonDown(object sender, MouseEventArgs e) {
        try
        {
            string selected = allDomains_ListBox.SelectedItem.ToString();
            MessageBox.Show("Item is available " + selected);

        }
        catch (Exception ex)
        {
            MessageBox.Show("Item is not available");

        }
    }

listItems是使用以下内容生成的:

public void enum_AllDomains()
    {
        Forest currentForest = Forest.GetCurrentForest();
        DomainCollection domains = currentForest.Domains;
        foreach (Domain objDomain in domains)
        {
            allDomains_ListBox.Items.Add("somedomain.com");
            allDomains_ListBox.Items.Add("google.com");
        }

    }

这是我为listBox编写的xaml:

<ListBox Width="200" x:Name="allDomains_ListBox" Grid.Column="1" />
hfyxw5xn

hfyxw5xn1#

您可以处理ListBoxItem容器的PreviewMouseLeftButtonDown事件:
第一个

o8x7eapl

o8x7eapl2#

您可以将sender对象转换为ListBoxItem,并可以访问Name等所有属性。

private void getDomains_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            ListBoxItem lstBoxItem = (ListBoxItem)sender;
            MessageBox.Show("Item is available " + lstBoxItem.Name);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Item is not available");

        }
    }

相关问题