Фон:
У меня есть приложение WPF с главным окном, содержащим пользовательский элемент управления.Я хочу передать значение из главного окна пользовательскому элементу управления.
В конструкторе главного окна у меня есть код:
public MainWindow()
{
InitializeComponent();
_vm = new MainWindowViewModel();
this.DataContext = _vm;
ucControl = new UserControl1("NameSet");
}
(ucControl - мой пользовательский элемент управления)
Пользовательский элемент управления имеет два конструктора:
public UserControl1()
{
InitializeComponent();
this.ID = ID.GetNewID;
}
public UserControl1(string name)
{
InitializeComponent();
_vm = new UCViewModel(name);
this.DataContext = _vm;
this.ID = ID.GetNewID;
}
Проблема в том, что хотя второй конструктор (с параметром) вызывается, он не загружается в главное окно.Я проверил идентификатор (this.ID) в загруженном событии пользовательского элемента управления и вижу, что идентификатор установлен в конструкторе по умолчанию, а его DataContext равен нулю.По этой причине в моем пользовательском элементе управления нет строки «name».
Любая помощь, пожалуйста?Поскольку я использую шаблон MVVM, я не хочу показывать свойства в пользовательском элементе управления (представление), которые должны быть установлены из главного окна только для этого.