【问题标题】:c# add tag to ListBox itemc#给ListBox项添加标签
【发布时间】:2015-10-28 19:26:57
【问题描述】:

在我的应用程序中有一个动态填充的列表框。

每个item都需要有一个click事件,所以会打开这个item所属的组件。

因此我需要在每个项目上添加一个标签,这样我就可以在事件方法中获取这个标签。

列表框:

var lb_Volunteers_From_Question = new ListBox();
foreach (var volunteer in volunteers)
{
    lb_Volunteers_From_Question.Items.Add(volunteer.Name);
    {
        // set tag
        Tag = volunteer;
    };

    // set event
    lb_Volunteers_From_Question.Click += new EventHandler(ShowVolunteerProfile);
}

// listbox settings

事件方法

public void ShowVolunteerProfile(object sender, EventArgs e)
{
    // get volunteer out of tag
    var item = sender as ListBox;
    var tagQuestionDetail = (TagQuestionDetail)item.Tag;


    // Show volunteer profile info
    // code                     
}

但这不适合我。有办法吗?

【问题讨论】:

    标签: c# listbox


    【解决方案1】:

    这里:

    public void ShowVolunteerProfile(object sender, EventArgs e)
    {
        // get volunteer out of tag
        var item = sender as ListBox;
        var tagQuestionDetail = (TagQuestionDetail)item.SelectedItem.Tag;
    
    
        // Show volunteer profile info
        // code                     
    }
    

    【讨论】:

    • item.SelectedItem.Tag 是不可能的。仅限:ToString、Equals、GetHashCode 和 GetType :(
    • @JimVercoelen 这是 WinForms 还是 WPF?
    猜你喜欢
    • 2011-01-29
    • 2014-02-06
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多