Как запустить методы на страницах в Silverlight?

Я должен быть в состоянии установить видимость границы, чтобы быть видимой в течение 10 секунд. Граница находится в MainPage.xaml, который является родительским для Content.xaml. Хитрость заключается в том, что мне нужно изменить видимость границы, щелкнув элемент ContextMenu, который доступен из Content.xaml, который загружается как UserControl в MainPage.xaml. Это также должно быть условным основанием на значении ячейки в сетке данных. Я установил метод в Content.xaml, который должен условно изменить видимость границы в MainPage.xaml. Поскольку граница выходит за рамки, мне нужно найти способ, чтобы подключиться к ней.

Код для установки видимости на основе содержимого в значении ячейки в сетке данных:

private void Delete(object sender, RoutedEventArgs e)
    {
        Packages_DataViewModel currentItem = MasterTile.SelectedItem as Packages_DataViewModel;
        if (currentItem.Status != "has content")
        {
            this.MainPageBorder.Visibility = Visibility.Visible;
        }
        else
        {
            mv.DeletePackagesItem((Packages_DataViewModel)(MasterTile.SelectedItem));
        }
    }

Мне также нужно запустить метод, который я использую в Content.xaml для изменения содержимого сетки данных с помощью кнопки в MainPage.xaml. Любые идеи высоко ценятся!

Код для обновления значения ячейки:

private void Status(object sender, RoutedEventArgs e)
    {
        Packages_DataViewModel currentItem = MasterTile.SelectedItem as Packages_DataViewModel;
        currentItem.Status = "has content";
        this.MainPageBorder.Visibility = Visibility.Collapsed;
    }

2 ответа

Решение

Чтобы ответить на ваш комментарий, RootVisual является вашим MainPage.xaml.

Чтобы получить доступ к методам в вашем Content.xaml, вы должны установить эти методы для общего доступа. Затем из MainPage.xaml вы можете вызвать его таким образом (приведя содержимое типа ucMainPage_MainContent к типу Page1).

((Page1)this.ucMainPage_MainContent.Content).TestMethod1();

(TestMethod1 - это новый открытый метод, который я добавил в Page1.xaml.)

MainPage.xaml всегда должен быть вашим пользователем root. Вы можете легко получить доступ к объекту через

следующий код:

Application.Current.RootVisual

и это доступно везде в вашем приложении Silverlight.

Другие вопросы по тегам