У меня есть проект, над которым я работал довольно давно, и я столкнулся с проблемой ссылок. В настоящее время схема решения выглядит следующим образом:
Решение
- Пространство имен Agent_Toolbox
- MainWindow
- CallTemplate (UserControl)
- Пространство имен CustomTextBoxes
- NumberTextBox (CustomControl)
Моя проблема в том, что CallTemplate
использует один из NumberTextBox
пользовательских элементов управления. Мне нужно сослаться на класс CallTemplate
из класса NumberTextBox в операторе typeof
. то есть:
ParentControls parentControl = new ParentControls();
Visual parent = parentControl.GetParentControls(this, 3);
if (parent == typeof(CallTemplate))
{
//Do something
}
Но что бы я ни пытался, я не могу заставить VS распознавать CallTemplate в этом случае как класс. Я попытался добавить ссылку на NumberTextBox, но это дает мне ошибку круговой избыточности. Я также попытался отделить CallTemplate
в отдельном пространстве имен, но затем it не может найти NumberTextBox
без циклической избыточности. Единственной вещью, о которой я подумал, было размещение всех пользовательских / пользовательских элементов управления в отдельном проекте в решении, но затем xaml не смог найти CustomTextBoxes для добавления поля в CallTemplate. Я очень расстроен и растерялся, и убежден, что я упускаю что-то простое.
Есть идеи, пожалуйста?
Edit:
Я добавил UserControl в проект CustomTextBoxes. VS studio поместила его в то же пространство имен и сгенерировала
public partial class CallTemplate: UserContol
{
public CallTemplate()
{
InitializaComponent();
}
}
Если я пытаюсь переименовать пространство имен, оно переименовывает все пространство имен, а не только этот файл. Поэтому я создал новое пространство имен и вставил в него код CallTemplate
. VS отказался от метода InitializeComponent()
, сказав, что его не существует в текущем контексте. По сути, мне нужно знать, как перенести одну часть кода пространства имен в другое пространство имен.