如何从Silverlight DataContext对象中检索数据

时间:2011-07-20 20:22:09

标签: c# silverlight datacontext

我有一个Silverlight应用程序,它是表单字段和按钮的集合。

我创建了一个方法存根,用于处理xaml.cs中的click事件。当我在调试期间检查发件人时,我可以看到基本类型是一个TextBlock,在该文本块中的DataContext对象中,我看到了我的自定义类型的属性。其中一个是GUID - 这是Sender的类型,所以我转换为TextBlock,我可以看到DataContext,但我不知道如何从这个对象中获取我的类型的字段值:

private void someTextField_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {

        var dataContext = (TextBlock) sender;
        var assetGUID = dataContext.DataContext.  /
        // intellsense does not show any fields, indexers, or getters - Just says "Get or Set datacontext fields in a datacontext".

    }

如上所述,如果我在Sender上调试并放置一个监视器,请深入两级,我可以看到我的对象字段。

感谢。

1 个答案:

答案 0 :(得分:4)

如果您可以在调试模式下看到,TextBlock的DataContext是您需要的Object,那么您只需将其强制转换为您的对象。

private void someTextField_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {

        var dataContext = (TextBlock) sender;
        var assetGUID = ((YourObject)dataContext.DataContext).getGuid()  /
        // intellsense does not show any fields, indexers, or getters - Just says "Get or Set datacontext fields in a datacontext".

    }

您需要这样做,因为DataContext是使用返回值Object(DataContext

定义的

这是你需要的吗?

BR,

TJ