Основы WPF: работа с ViewModel

Декларативное подключение ViewModel и связывание с ним элементов управления.

Создание ViewModel

namespace PZone.ViewModels
{
    public abstract class ViewModel : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;


        protected virtual void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }


        protected void SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
        {
            if (Equals(field, value))
                return;
            field = value;
            NotifyPropertyChanged(propertyName);
        }
    }
}
namespace PZone.ViewModels
{
    public class MyViewModel:ViewModel
    {
    }
}

Подключение ViewModel

<Window 
    xmlns:vm="clr-namespace:PZone.ViewModels">
    <Window.DataContext>
        <vm:MyViewModel />
    </Window.DataContext>
</Window>

Связывание элемента управления ComboBox

namespace PZone.ViewModels
{
    public class MyViewModel: ViewModel
    {
        private EntityMetadata _entity;


        public ObservableCollection<EntityMetadata> Entities { get; } = new ObservableCollection<EntityMetadata>();


        public EntityMetadata Entity
        {
            get { return _entity; }
            set { SetProperty(ref _entity, value); }
        }
    }
}
<ComboBox 
    ItemsSource="{Binding Entities}" 
    DisplayMemberPath="LogicalName" 
    SelectedItem="{Binding Entity}" />

About the author

Добавить комментарий

Сказать спасибо

Способ платежа:

Подписаться на обновления

Укажите свой e-mail чтобы получать уведомления о новых статьях.

Присоединиться к еще 1 подписчику