2010-09-04 89 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"]; 
    } 
相关问题