Я экспериментировал с Blend, чтобы найти подход перетаскивания к привязке данных, который по-прежнему позволяет легко переопределять модель представления в коде.
- Сначала создайте объект модели представления, который реализует INotifyPropertyChanged и вызывает событие notify в установщиках. Модели представлений могут быть иерархическими. Например, у вас может быть ObservableCollection в вашей модели основного вида.
- В Blend откройте свою страницу или элемент управления и перейдите на вкладку данных.
- Справа откройте меню под значком «Добавить источник данных в реальном времени».
- Выбор "Определить новый источник данных объекта"
- Выберите класс модели представления верхнего уровня и подтвердите диалоговое окно
В своих экспериментах я обнаружил, что важно связать источник данных с тем местом, где я его хотел сначала, иначе Blend мог бы создать неоптимальную конфигурацию, если я сначала не сделал следующий шаг.
- Открыть окно объектов и шкалы времени в Blend
- Выберите корневой объект, например, UserControl
- Откройте Свойства и убедитесь, что выбран корневой объект
- Найдите DataContext и щелкните квадрат, чтобы открыть меню, и выберите DataBinding
- Выберите источник данных, который был только что создан ранее
Теперь, когда источник данных создан, привязка данных очень проста.
- поставить некоторые элементы управления на странице
- открыть окно данных
- из источника данных для модели представления перетащите свойства в элементы управления, чтобы создать привязки или установить привязку из окна «Свойства».
Теперь вы можете создать объект модели в реальном времени в конструкторе элемента управления
public MainPage()
{
// Required to initialize variables
InitializeComponent();
mVm = new MyViewModel();
this.DataContext = mVm;
}
private MyViewModel mVm;
Добавьте любую инициализацию для получения данных, и вы готовы к работе.