2013-08-13 3 views
0

Я хочу получить доступ к значениям сетки главной страницы в пользовательском контроле (дочерняя страница). Пожалуйста, скажите мне, как это сделать?Как получить доступ к элементам родительской страницы в usercontrol в silverlight?

+0

Вы используете шаблон Model-View-ViewModel или ваши данные хранятся в коде страницы/кода управления? –

+0

Я не использую MVVM Model.using только обычный код страницы – user1237131

ответ

0

Вы можете выставить ваш MainPage на App класса (объявленного в App.xaml.cs) как App.MainPage собственности:

public MainPage MainPage { get; private set; } 

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    this.MainPage = new MainPage(); 
    this.RootVisual = this.MainPage; 
} 

Тогда вы можете получить доступ все открытые свойства/функции на классе MainPage следующим образом:

MainPage mainPage = ((App)App.Current).MainPage; 

Альтернативно вы можете найти MainPage в визуальном дереве страницы следующим образом:

using System.Linq; 
using System.Windows.Controls.Primitives; 


// place this code where you want to find MainPage 
MainPage mainPage = this.GetVisualAncestors().OfType<MainPage>().FirstOrDefault(); 
+0

Какой способ не работает с образцами, первым или вторым? –

+0

Как объявить главную страницу в app.xaml.cs, дайте мне знать четко? – user1237131

+0

Я обновил пример, извините за несклонность. –