powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Какой способ лучше всего ?
5 сообщений из 5, страница 1 из 1
Какой способ лучше всего ?
    #38716033
Ростигай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Дайте совет, как лучше всего реализовать данную штуку:

Имеется простенькая форма, на ней стандартный Grid.
В гриде несколько кнопочек и заголовок.


Нужно сделать, чтобы в определенной ситуации (при отсутствии связи, но несуть) - все содержимое этого грида, заменялось простым лейблом с текстом "нет связи, обратитесь к тому-то".

Собственно весь вопрос - как лучше всего реализовать замену содержимого грида другим содержимым, а потом вернуть назад? Как разработать такую форму в Дезайн-тайм. Поделитесь советом.
...
Рейтинг: 0 / 0
Какой способ лучше всего ?
    #38716373
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ростигай,

MVVM. ContentControl. Converter.
...
Рейтинг: 0 / 0
Какой способ лучше всего ?
    #38720102
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Grid>
  <Grid.RowDef...>
     <RowDef... Height="Auto"/>
     <RowDef... Height="32"/>
     <Grid Grid.Row="0" Visibility="{Binding GridVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
        Тут любые контролы
     </Grid>
     <Label Grid.Row="0" Visibility="{Binding LabelVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Content="Some label text"/>
  </Grid.RowDef..>
</Grid>


В конструкторе простенокой формы пишем:
Код: c#
1.
this.DataContext = new ViewModel();


где:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
class ViewModel : INotifyPropertyChanged
{
      public event PropertyChangedEventHandler PropertyChanged;
      protected void OnPropertyChanged(string propertyName)
      {
          PropertyChangedEventHandler handler = PropertyChanged;
          if (handler != null)
          {
              handler(this, new PropertyChangedEventArgs(propertyName));
          }
      }
      
      public Visibility _gridVisibility;
      public Visibility GridVisibility 
      {
          get { return _gridVisibility; }
          set
          {
              if (_gridVisibility  != value)
              {
                    _gridVisibility = value;
                    OnPropertyChanged("GridVisibility ");
              }
          }
      }
      //Так же объявить и LabelVisibility
}


Как-то так)
...
Рейтинг: 0 / 0
Какой способ лучше всего ?
    #38728179
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_Пав,

"По науке" лучше без необходимости в ViewModel не пихать отдельные Visibility.
Visibility="{Binding GridViewModel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter=IfNullVisibilityConverter}"
Реализовать NullVisibilityConverter, при чем ему передать аргумент, что возвращать при Null (для грида Collapsed, для сообщения Visible.
...
Рейтинг: 0 / 0
Какой способ лучше всего ?
    #38728185
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ContentControl + ContentTemplate + два DataTemplate + возможно Style + DataTrigger
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Какой способ лучше всего ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]