我有一个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上调试并放置一个监视器,请深入两级,我可以看到我的对象字段。
感谢。
答案 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