我正在忙于使用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();
}
答案 0 :(得分:0)
您可以使用as
operator将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;
}
您的调试器显示object
中的e.ClickedItem
是MyImage
个实例,因此投射应该有效。
如果MyImage
类型是值类型(struct
),则as
运算符无法正常工作。你需要直接投射:
MyImage output = (MyImage)e.ClickedItem;
但如果InvalidCastException
包含不同类型的实例,则此强制转换将抛出e.ClickedItem
。您可以在使用is
投标前检查类型:
if (!e.ClickedItem is MyImage) return;