如何访问提供给事件处理程序的对象的属性? (可以在调试时查看,但不能在Intellisense中查看。)

时间:2015-02-23 20:57:23

标签: c# listview

我正在尝试查找ListView中选择的项目。更改选择后,我运行以下代码:

private void Change_CurrentConnection(object sender, SelectionChangedEventArgs e)
{
    var d = e.AddedItems[0];
}

你可以在这里看到d是什么: enter image description here

我的问题是,如何访问IdNameUrl属性? (属性是来自自定义类的字符串。ListView绑定到从该类生成的对象集合。)

2 个答案:

答案 0 :(得分:3)

您需要将该项目转换为您的类,该类似乎称为Connection?您应首先检查您要投射的对象是否实际上是您希望将其投射到的类型:

if (e.AddedItems[0] is Connection)
{
    Connection toAccess = e.AddedItems[0] as Connection;

    // Here you can access the properties directly
    string myUrl = toAccess.Url;
}

这样我们就可以避免InvalidCastException。

答案 1 :(得分:1)

您可以按照以下方式执行此操作

Connection lstViewItem = (Connection)YourListView.SelectedItems[0];