[英]Getting specific data from an object C#
我正忙于使用gridview作为类别页面的UWP应用。 我已经为单击一个网格项时放置了一个OnClick侦听器,并且它可以工作。 结果是一个包含imageURL和imageText的对象。
这是问题开始的地方,我需要访问该对象并检索图像文本,我尝试使用各种方法将其转换,但似乎没有任何作用。
这是我最近的尝试,只是通过“无法转换此类型的对象”
private void CategoryItem_Click(object sender, ItemClickEventArgs e)
{
object output = e.ClickedItem;
//string[] arr = ((IEnumerable)e.ClickedItem).Cast<object>()
//.Select(x => x.ToString())
//.ToArray();
}
您可以使用as
运算符将object
转换为Wiin.MainPage.MyImage
:
private void CategoryItem_Click(object sender, ItemClickEventArgs e)
{
MyImage output = e.ClickedItem as MyImage;
if (output == null) return; // the clicked item was not of the expected type
string text = output.ImageText;
string url = output.ImageUrl;
}
调试器显示e.ClickedItem
中的object
是 MyImage
实例,因此MyImage
应该起作用。
如果MyImage
类型是值类型( struct
),则as
运算符将不起作用。 您需要直接进行投射:
MyImage output = (MyImage)e.ClickedItem;
但是,如果e.ClickedItem
包含其他类型的实例,则此InvalidCastException
将引发InvalidCastException
。 你可能会使用铸造前检查类型is
:
if (!e.ClickedItem is MyImage) return;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.