Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 6
1

Изменение Visibility одной страницы из другой

16.01.2017, 18:44. Показов 2608. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Короче проблема, надо одну страницу скрыть при вызове метода в другой страницы (и еще надо скрыть страницу из метода другого окна)... Вся суть состоит в получению доступа к параметрам. Много чего перепробовал - не могу.
Архитектура приложения строится так:
1. В Mainwindow есть страницы:
XML
1
2
3
4
5
<Grid>
      <Frame Name="Auto" Source="Pages/Autorization/Autorization.xaml" Visibility="Visible"></Frame>
      <Frame Name="Observe" Source="Pages/Spe******t/ObserveSpec.xaml" Visibility="Hidden"></Frame>
      <Frame Name="Add" Source="Pages/Spe******t/AddJobless.xaml" Visibility="Hidden"></Frame>
</Grid>
2. При нажатии на кнопку на странице Autorization.xaml открывается новое окно (Spe******tAuto.xaml) с вводом логина и пароля. Именно тут (при удачном вводе) надо Autorization.xaml скрыть (выставить Visibility="Hidden"), а ObserveSpec.xaml - Visible.
На прямую Auto.Visibility = Visibility.Hidden; не работает. Если создавать экземпляры страницы - тоже. Помогите плиз!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2017, 18:44
Ответы с готовыми решениями:

Изменение одной страницы с другой
Здравствуйте! Возникает следующая проблема. Есть окно. Оно разделено на два фрейма. В xaml коде...

Различие Visibility.Hidden и Visibility.Collapsed
Сразу прошу прощения за глупый вопрос,но в интернете сколько не искал,так до конца и не понял В...

Передача значений input из формы одной страницы в скрипт другой страницы
Добрый вечер! В общем есть у меня две страницы. На первой странице форма, в inputы формы...

Перенос текста из одной страницы сайта в форму другой страницы
Здравствуйте. Сайт на Joomla. В админпанели есть страница с объявлением. На этой странице есть...

4
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
16.01.2017, 19:00 2
сделать в модели главного окна 3 свойства для каждой из страниц и прибинди эти свойства к визибилити и изменяй как тебе надо:

ViewModelMainWindow.cs
C#
1
2
3
4
5
6
private bool _isAutorizationActiv = true;
public bool IsAutorizationActiv 
{
get {return _isAutorizationActiv;}
set { _isAutorizationActiv = value; OnPropertyChanged();}
}
XML
1
2
3
4
<Grid>
      <Frame Name="Auto" Source="Pages/Autorization/Autorization.xaml" Visibility="{Binding IsAutorizationActiv, Converter={StaticResource BoolToVisibilityConverter}}"></Frame>
      ...
</Grid>
так же и для других фреймов. при удачном вводе пароля просто устанавливаешь нужные свойства в тру или фолс
0
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 6
16.01.2017, 19:50  [ТС] 3
Биндинг я вообще не шарю( Что с этим делать
Converter={StaticResource BoolToVisibilityConverter}, пишет "Не удалось разрешить ресурс"?

Добавлено через 3 минуты
Да и главную проблему видимости(доступности) из кода другого окна или страницы это не решает...
0
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
16.01.2017, 20:28 4
awesome7997,

ну что я могу вам сказать? биндинги - это основа впф, решение я вам показал, не устраивает - извращайтесь другими способами.

p.s.
XML
1
Converter={StaticResource BoolToVisibilityConverter}
конвертер нужно для того, чтобы конвертировать свойство типа bool к типу Visibility
0
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 6
17.01.2017, 15:25  [ТС] 5
Нашел другое решение...
1. Статическое поле (про которое писал).
2. В конструкторе отправляем статический экземпляр этого окна:

C#
1
2
3
4
5
public MainWindow()
        {
            InitializeComponent();
            PROVIDER.Get_mw = this;
        }
3. Создаем класс, который принимает этот экземпляр и делаем что хотим с элементами этого окна:

C#
1
2
3
4
5
6
7
8
9
10
11
class PROVIDER
    {
        public static bool AutoShowStatus = true;
        public static MainWindow Get_mw { get; set; }
        public void ChangeVisibility()
        {
            if (AutoShowStatus == false) Get_mw.Autor.Visibility =
               Visibility.Hidden;
            else Get_mw.Autor.Visibility = Visibility.Visible;
        }
    }
0
17.01.2017, 15:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2017, 15:25
Помогаю со студенческими работами здесь

Обновление одной страницы из другой
Как можно сделать перегрузку страницы '1.htm' путем нажатия кнопки на странице '2.htm'?

Изменение переменной с другой страницы
у меня есть переменная называется nast которая находиться на странице PanoramaPage1 а мне нужно с...

Изменение переменной с другой страницы
у меня есть переменная называется nast которая находиться на странице PanoramaPage1 а мне нужно с...

Изменение значение поля одной БД из другой
Доброго времени суток! Помогите начинающему лотусисту, плз. Есть 2 БД на одном сервере. Одна -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru