В подходе MVVM, как я могу привязываться к Properties.Settings? Есть ли способ связать свойство в коде C# (в ViewModel) с другим свойством (Properties.Settings.Default), или я должен просто привязываться к стандартным свойствам и сохранять, чтобы каждое свойство было передано вручную в Properties.Settings?MVVM Связывание с Properties.Settings
ответ
Что-то вроде последнего: выставлять настройки в Properties.Settings.Default с помощью свойств в ViewModel, подходящих для представления.
public class SomeViewModel
{
public int SomeProperty
{
get
{
return Properties.Settings.Default.SomeProperty;
}
set
{
Properties.Settings.Default.SomeProperty = value;
}
}
}
... или код по этому вопросу.
Настройки реализуют INPC, поэтому вы можете просто привязать непосредственно к настройкам с вашего вида. Помните, что вам нужно вручную вызвать Save() в настройках, чтобы фактически сохранить их в изолированном хранилище.
Я бы не рекомендовал напрямую привязываться к настройкам, так как это не очень похоже на MVVM. Исключением может быть, если представление ничего не делало, но позволяло отображать/редактировать вещи в настройках, но даже тогда я бы не захотел рассмотреть Properties.Settings.Default правильную ViewModel. – allonym
MVVM очень субъективен в некоторых аспектах. Если настройки (которые в основном (часть) модели) имеют необходимые свойства, я не вижу проблем, непосредственно связанных с ними. Я также привязываю непосредственно к моей модели для некоторых свойств, которые уже находятся в правильном типе. Я не вижу смысла использовать код шаблона VM, который просто восстанавливает все свойства модели. –
как вы собираетесь тестировать, что представление действительно получает правильные настройки? Вы не можете, потому что вы сделали ярлык мимо viewmodel ... –
- 1. MVVM Связывание с InkCanvas
- 2. Связывание с ICommand с MVVM
- 3. Связывание событий с даннымиGrid MVVM
- 4. MVVM Связывание с выставленным свойством
- 5. WPF MVVM MAILTO Связывание
- 6. Радиокнопка Связывание MVVM Применение
- 7. Связывание команд MVVM
- 8. MVVM ObservableCollection и связывание
- 9. Непоследовательная доступность с Properties.Settings?
- 10. C#: Properties.Settings
- 11. WPF и MVVM. Связывание событий
- 12. MVVM ICommand Связывание «выше вверх»
- 13. Связывание изображения в WPF MVVM
- 14. Связывание MVVM CheckBox внутри списка
- 15. Связывание WPF MVVM с определенными типами
- 16. Связывание данных с формой WPF, MVVM
- 17. WPF MVVM: ICommand Связывание с элементами управления
- 18. Связывание вложенного списка с использованием MVVM
- 19. Связывание в ListBox с использованием MVVM
- 20. Связывание ComboBox SelectedItem с использованием MVVM
- 21. Связывание коллекции объектов с холстом в MVVM?
- 22. Связывание Datagrid с использованием MVVM WPF
- 23. Связывание DataTable с DataGrid в MVVM WPF
- 24. Связывание ObservableCollection с datagrid в MVVM
- 25. Связывание для GroupBox HeaderTemplate с MVVM
- 26. WPF MVVM Связывание вложенного свойства
- 27. Связывание данных в MVVM WPF
- 28. Связывание Telerik RadRichTextBox через MVVM
- 29. Как правильно использовать Properties.Settings?
- 30. Перебор Properties.Settings используя строку
Это точно такой шаблонный код, который я стараюсь избегать: вы не добавляете ничего нового. Вместо того, чтобы сделать эту работу правильно, вы должны запустить INPC, когда вы измените значение в свойстве. Кроме того, вы должны прислушиваться к изменениям свойств в модели (настройки в этом случае), а также запускать INPC при изменении базовой модели. Все это, поэтому вы привязываетесь к ViewModel.Property, а не к параметрам Settings.Property или ViewModel.Settings.Property? –