2011-07-20 56 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