Создание пользовательского элемента управления с UserControl и DepenencyProperties с использованием MVVM - PullRequest
0 голосов
/ 13 февраля 2019

Я создал MVVM UserControl, который делает то, что я хочу, но я хочу добавить свойство DependencyProperty, которое даст мне больше гибкости.(Если DependencyProperty - лучший маршрут.)

По сути, я хочу добавить эту функцию ...

<!-- Before -->
<local:MyCustomControl />

<!-- After -->
<local:MyCustomControl IsMasterControl="True" />

Я добавил следующую DependencyProperty в MyCustomControlViewModel:

public bool IsMasterControl
{
    get { return (bool)GetValue(IsMasterControlProperty); }
    set { SetValue(IsMasterControlProperty, value); }
}
public static readonly DependencyProperty IsMasterControlProperty = DependencyProperty.Register("IsMasterControl", typeof(bool), typeof(MyCustomControl), new PropertyMetadata(false));

Однако, когда я пытаюсь добавить этот атрибут в свой элемент управления в XAML, у меня не появляется возможность добавить IsMasterControl.

Чего мне не хватает?

Спасибо!

1 Ответ

0 голосов
/ 13 февраля 2019

Я не уверен, имеет ли смысл определять DP в ViewModel, DP считаются частью презентации.Обычно вы определяете их в представлении, в частности, в коде .Представления и DP могут существовать еще до появления виртуальной машины.(может быть важно и для иерархий DP).

Теперь, если вы действительно хотите это в виртуальной машине (скажем, как обычные свойства C #), вам все равно нужно выставить DP в коде представления.Вам нужно будет синхронизировать оба.Когда говорят, что изменения DP обрабатывают событие изменения и информируют VM и наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...