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

标签 c# silverlight datacontext

我有一个 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/

相关文章:

c# - 从 DataGridView 解除绑定(bind) BindingSource 的正确方法

c# - 图像未显示在设计器、Silverlight 应用程序中

wpf - 是否可以使用 ViewModel 第一种方法从 View 订阅 ViewModel 事件?

c# - CommandParameter 上的 DataContext 与 Command 本身上的 DataContext 不同

c# - 为什么当 this.DataContext = this 时绑定(bind)到我的类的实例不起作用

c# - LinQ 数据行和列集合 C#

c# - 是否可以创建一个包含多页 tiff 文件所有帧的 base64 字符串?

c# - 对象模型设计选择

c# - FrameworkElement 的 VisualStateManager.GoToState

silverlight - 运行 Silverlight 单元测试时出现 NullReferenceException