Я использую TabControl
в одном из моих классов. Тем не менее, я не хочу раздувать этот класс и помещать в него весь код, а также все XAML
для TabItems.Имея некоторые проблемы с созданием UserControl с параметром
После некоторого Googling я придумал UserControl
. Поэтому я создал UserControl
для каждого TabItem
, с кодом C# TabItem
в этом UserControl
.
Проблема заключается в том, что мне нужно перенести некоторые данные из моего родительского окна (содержащего TabControl
) в UserControls
, чтобы правильно отображать данные, необходимые для этой вкладки.
Я создал UserControl
в XAML
и код выглядит так:
<TabItem Name="userTab" Header="Gebruikers" HorizontalAlignment="Stretch">
<local:UserTabControl x:Name="userTabPanel"/>
</TabItem>
Это конструктор код для моего UserControl
:
public UserTabControl() {
setUsersView(); // NEED DATA FOR THIS
setUserData((User)usersView.SelectedItem);
InitializeComponent();
}
Это переменная класса в UserControl
, который нуждается переменная из родительского окна: private static Parser m_config;
Когда я запускаю это, я получаю ошибка компиляции:
«Ссылка на объект не установлена в экземпляр объекта».
, указывающий на линию XAML, где я создаю свой UserControl.
Итак, вывод здесь заключается в том, что я пока не могу передать переменную в UserControl и хотел бы иметь некоторые предложения или подсказки или рекомендации относительно того, как это сделать в этом случае. Где я ошибаюсь здесь, чтобы достичь требуемой функциональности?
The Us erControl должен предоставить свойство зависимостей, которое может быть привязано к свойству модели представления. Поиск в Интернете для привязки данных MVVM и WPF. – Clemens
Вы всегда можете создавать общедоступные методы в User Control, которые принимают параметры и вызывают их. – Abhinav
Я бы не заполнил элемент управления в конструкторе. На этом этапе вы создаете объект только. Затем вы можете вводить зависимости, связывать свойства зависимостей, связывать данные и т. П. В некоторых приложениях я использовал шаблон локатора службы, чтобы приложение и логика пользовательского интерфейса могли обращаться к инфраструктурным службам, таким как доступ к данным. – Christoph