我有一个 Silverlight 应用程序,它是表单域和按钮的集合。
我已经创建了一个方法 stub 来处理 xaml.cs 中的单击事件。当我在调试期间检查发件人时,我可以看到基本类型是一个 TextBlock,并且在该文本 block 内的 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 上放置监视,深入两层我可以看到我的对象字段。
谢谢。
最佳答案
如果您可以在 Debug模式下看到,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,
张杰
关于c# - 如何从 Silverlight DataContext 对象中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768013/