如何在我的代码隐藏中访问SilverLight UserControl的属性?
问题描述:
我刚开始通过在Visual Web Developer 2008中创建silverlight应用程序来学习Silverlight。如何在我的代码隐藏中访问SilverLight UserControl的属性?
我在用户控件中定义了一个公共属性。如何在aspx隐藏页面中访问此属性值?请帮忙。
答
不确定你的意思,但你可以给你的用户控件在XAML一侧的名称:x:Name =“myControl”然后你可以使用this.myControl.MyProperty。
答
您无法从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"];
}
你究竟想要做什么?页面加载时初始化属性?当它改变时阅读它?根据你想要做什么,你可能需要一些JavaScript,所以更多的细节将帮助我们回答你的问题。 – 2010-09-04 17:48:27