Итак, я хочу сделать многостраничное приложение (17 страниц), и у меня есть каждая страница, представленная классом. Является ли хорошей идеей использовать статические поля в каждом классе, чтобы я мог легко получить доступ ко всем их на любой странице (классе)?WPF многостраничное приложение
-1
A
ответ
1
Примечание: это первая идея, которая приходит на ум. Я делюсь этим, так как это может помочь вам продолжить, но, вероятно, есть более чистые/лучшие варианты.
Это простой пример класса, содержащего список строк. Вы создаете экземпляр «sharedClass» и передаете его вместе с конструктором каждого из классов Page.
internal class Test : INotifyPropertyChanged
{
private ObservableCollection<string> _sharedValues;
public Test()
{
SharedValues = new ObservableCollection<string>();
}
public ObservableCollection<string> SharedValues
{
get { return _sharedValues; }
set
{
_sharedValues = value;
OnPropertyChanged();
}
}
#region NotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
инициализации:
public void Initalize()
{
var sharedModel = new Test();
Page7 page1 = new Page7(sharedModel);
Page10 page1 = new Page10(sharedModel);
Page15 page1 = new Page15(sharedModel);
}
Не могли бы вы привести пример того, какую информацию вы хотели бы поделиться между вашими классами? Создание нескольких полей, статических, чтобы иметь возможность делиться ими, похоже на взлома. – Starceaker
Скажем, например, у меня есть список, который собирает некоторые значения со страницы 7, а также со страницы 10, а затем все эти значения читаются на странице 15. – Ivan
Я думаю, что вы должны использовать класс модели, в этом классе вы можете сохранить данные и то при загрузке страницы вы можете получить доступ к своей модели и получить все данные, которые вам нужно показать. – ganchito55