#windows-phone-7
#windows-phone-7
Вопрос:
У меня есть Pivot
на MainPage.xaml; как я могу вызвать это из другого класса?
MainPage.mypivot.Items.Add(p);
Error 2 An object reference is required for the non-static field, method,
or property '...MainPage.mypivot' H:UsersLacroixdocuments...
Ответ №1:
Вы не можете сделать это именно из-за причины, которую сообщает вам компилятор. MainPage не является статическим классом, при просмотре страницы отображается экземпляр класса, поэтому вам нужно управлять этим экземпляром. Что вы можете сделать, это передать ссылку на класс MainPage другому классу. Затем пусть MainPage содержит экземпляр другого класса.
В MainPage.xaml.cs
public partial class MainPage : PhoneApplicationPage
{
private MyClass _myClass;
MainPage()
{
_myClass = new MyClass( this );
}
}
Теперь у MyClass
вас будет доступ к Pivot
(и всем другим элементам MainPage).
Если какая-либо логика, используемая другим классом для добавления элементов в Pivot
, недоступна при отображении главной страницы, т. Е. Вам Нужно добавлять элементы при отображении какой-либо другой страницы, вам нужно создать статический список (скажем PivotItemsList
) в App
классе. Попросите другой класс добавлять элементы в этот список, а не непосредственно в Pivot
. Затем вы можете получить к нему доступ в конструкторе MainPage as App.PivotItemsList
и добавить элементы в Pivot
.