Как получить доступ к свойству SilverLight UserControl в моем коде? - PullRequest
2 голосов
/ 04 сентября 2010

Я только начал изучать silverlight, создав приложение silverlight в Visual Web Developer 2008.

У меня есть публичное свойство, определенное в пользовательском элементе управления. Как я могу получить доступ к значению этого свойства на странице кода aspx? Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 04 сентября 2010

Вы не можете получить доступ к свойству UserControl из кода aspx. Код 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>

Выше приведена конфигурация тега объекта по умолчанию на тестовой странице 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"];
    }
0 голосов
/ 04 сентября 2010

Не уверен, что вы имеете в виду, но вы можете дать свой UserControl на стороне XAML имя с: x: Name = "myControl", затем вы можете использовать this.myControl.MyProperty.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...