我刚开始通过在Visual Web Developer 2008中创建一个silverlight应用程序来学习silverlight。
我在用户控件中定义了一个公共属性。如何在aspx代码隐藏页面中访问此属性值?请帮忙。
答案 0 :(得分:1)
您无法从aspx代码隐藏中访问UserControl
上的属性。 Aspx代码隐藏在服务器上执行,而Silverlight UserControl
在客户端上运行。
如果您希望aspx代码隐藏为Silverlight应用程序提供数据,请使用对象标记的“initParams”参数: -
<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>
以上是为托管silverlight应用程序而创建的测试aspx页面的默认对象标记配置。但是有一个区别,<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"];
}
答案 1 :(得分:0)
不确定你的意思,但你可以在XAML方面给你的UserControl一个名字:x:Name =“myControl”next你可以使用this.myControl.MyProperty。