2010-09-04 50 views
2

我剛開始通過在Visual Web Developer 2008中創建silverlight應用程序來學習Silverlight。如何在我的代碼隱藏中訪問SilverLight UserControl的屬性?

我在用戶控件中定義了一個公共屬性。如何在aspx隱藏頁面中訪問此屬性值?請幫忙。

+0

你究竟想要做什麼?頁面加載時初始化屬性?當它改變時閱讀它?根據你想要做什麼,你可能需要一些JavaScript,所以更多的細節將幫助我們回答你的問題。 – 2010-09-04 17:48:27

回答

0

不確定你的意思,但你可以給你的用戶控件在XAML一側的名稱:x:Name =「myControl」然後你可以使用this.myControl.MyProperty。

1

您無法從aspx代碼隱藏訪問UserControl上的屬性。 Aspx代碼隱藏在服務器上執行,因爲Silverlight UserControl在客戶端上運行。

如果你想讓你的aspx代碼隱藏數據提供給您使用的對象標記的「initParams在」參數Silverlight應用程序: -

<body> 
    <form id="form1" runat="server" style="height:100%"> 
    <div id="silverlightControlHost"> 
     <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
      <param name="source" value="ClientBin/SilverlightApplication1.xap"/> 
      <param name="onError" value="onSilverlightError" /> 
      <param name="background" value="white" /> 
      <param name="minRuntimeVersion" value="4.0.50303.0" /> 
      <param name="autoUpgrade" value="true" /> 
        <param name="initParams" id="initParams" runat="server" /> 
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50303.0" style="text-decoration:none"> 
       <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> 
      </a> 
     </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> 
    </form> 
</body> 

以上是從測試的默認對象標記配置創建aspx頁面來託管Silverlight應用程序。但是有一個區別,<param name="initParams"元素已被添加並標記爲服務器端控件。

現在服務器端ASPX代碼隱藏可以修改這個param元素的值: -

protected void Page_Load(object sender, EventArgs e) 
{ 
    initParams.Attributes["value"] = "input=Hello"; 
}  

想要發現這種方式可以用這樣的代碼做指定的值的用戶控件: -

public MainPage() 
    { 
     InitializeComponent(); 
     SomeTextBox.Text = App.Current.Host.InitParams["input"]; 
    } 
相關問題