2012-01-09 17 views
0

我已經穿過Silverlight控件的許多示例,可以從Lightswitch屏幕調用方法和訪問數據集合。從Lightswitch屏幕返回到Silverlight控件的值

我想訪問編輯表單中的記錄的ID字段我目前在我的silverlight控件上查看,因此我可以在另一個系統中查找相關數據。

我已經嘗試在通用項目中實現一個接口,該項目返回一個字符串並在我的Silverlight中使用以下內容來訪問它。自定義類是一個名爲Silverlight Bridge的接口,並且可以成功調用屏幕上的方法,但是,似乎無法獲得返回值。

var objDataContext = (IContentItem)this.DataContext; 
    var Screen = (Microsoft.LightSwitch.Client.IScreenObject)objDataContext.Screen; 

    string myVar = "Empty"; 

    var SilverlightBridge = (LightSwitchApplication.UserCode.ISilverLightBridge)Screen; 

    Screen.Details.Dispatcher.BeginInvoke(() => 
    { 
     myVar = SilverlightBridge.GetVehicleID(); 

    }); 

    MessageBox.Show(myVar) ; 

似乎myVar從未被設置。

是否有示例代碼,我可以指出或解決方案,任何人都可以建議?

+0

注意:'Screen.Details.Dispatcher.BeginInvoke'在單獨的線程**上運行*異步* **,並且在調用'MessageBox.Show'之前可能不會執行。斷開'myVar ='上的代碼,看看你是否得到了一個值。 – 2013-06-26 15:42:17

回答

0

使用LightSwitch,您只需簡單地綁定到集合,然後通過綁定獲取要由Silverlight控件使用的值。

在你的情況下,「我正在查看的編輯表單中的記錄的ID字段」是一個集合中的值(可能是集合的「.SelectedItem」)。

您想要將Silverlight控件綁定到此值。

您只想使用您描述的模式來通過用戶在Silverlight控件上引發事件來啓動事件。