2011-07-20 29 views
1

我有一个Silverlight应用程序,它是表单字段和按钮的集合。如何从Silverlight DataContext对象中检索数据

我已经创建了一个处理xaml.cs中的单击事件的方法存根。当我在调试期间检查发件人时,我可以看到基本类型是一个TextBlock,并且在该文本块中的DataContext对象中,我看到了我的自定义类型的属性。其中之一是GUID - 这是发件人的类型,所以我投给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上放置手表,可以深入两层,我可以看到我的对象字段。

谢谢。

回答

4

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

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的与返回值对象(DataContext

定义这是你需要什么?

BR,

TJ