从对象C#获取特定数据

时间:2017-03-22 12:58:49

标签: c# gridview onclick uwp

我正在忙于使用gridview作为类别页面的UWP应用程序。我在点击其中一个网格项时放了一个OnClick监听器,它可以工作。结果是一个包含imageURL和imageText的对象。

这是问题开始的地方,我需要访问该对象并检索图像文本,我尝试使用各种方法转换它,但似乎没有什么工作。

这是点击项目的输出,这是正确的。 output of the clicked item

这是我最近的尝试,它只是传递“此类型的对象无法转换”

private void CategoryItem_Click(object sender, ItemClickEventArgs e)
        {
            object output = e.ClickedItem;
            //string[] arr = ((IEnumerable)e.ClickedItem).Cast<object>()
                                 //.Select(x => x.ToString())
                                 //.ToArray();
        }

1 个答案:

答案 0 :(得分:0)

您可以使用as operatorobject转换为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;