나는 꽤 오랫동안 작업해온 프로젝트를 가지고 있으며 참조하는 문제가 발생했습니다. 현재 솔루션의 개요는 다음과 같습니다사용자 정의/사용자 컨트롤 간의 네임 스페이스 문제점
솔루션
- Agent_Toolbox 네임 스페이스
- MainWindow를
- CallTemplate (UserControl을)
- CallTemplate 클래스
- CustomTextBoxes 네임 스페이스
- NumberTextBox (CustomControl)
- NumberTextBox 클래스
- NumberTextBox (CustomControl)
내 문제가 CallTemplate
가 NumberTextBox
사용자 지정 컨트롤 중 하나를 사용한다는 것입니다. typeof
문에서 NumberTextBox 클래스 내에서 CallTemplate
클래스를 참조해야합니다. 즉 :
ParentControls parentControl = new ParentControls();
Visual parent = parentControl.GetParentControls(this, 3);
if (parent == typeof(CallTemplate))
{
//Do something
}
하지만 내가 무엇을 시도하든이 인스턴스를 클래스로 인식하도록 VS를 가져올 수는 없습니다. NumberTextBox에 대한 참조를 추가하려고했지만 순환 중복 오류가 발생합니다. 또한 별도의 네임 스페이스에 CallTemplate
을 분리하려고 시도했지만 그 다음 은 순환 중복없이 NumberTextBox
을 찾을 수 없습니다. 내가 생각한 Ont 객체는 모든 사용자/사용자 정의 컨트롤을 솔루션 내의 별도 프로젝트에 배치했지만 xaml은 CallTemplate에 상자를 추가하기 위해 CustomTextBoxes를 찾을 수 없었습니다. 나는 아주 좌절감이 많고 손실이 심하며, 그것이 내가 누락 된 단순한 것이라고 확신합니다.
어떤 아이디어로주세요?
편집 :
은 내가 CustomTextBoxes 프로젝트에 UserControl을 추가. VS 스튜디오 아니라 단지이 파일의보다 같은 공간 내에 배치하고, 나는 그것이 이름을 변경 네임 스페이스를 전체 네임 스페이스의 이름을 변경하려고하면
public partial class CallTemplate: UserContol
{
public CallTemplate()
{
InitializaComponent();
}
}
를 생성합니다. 그래서 아래에 새로운 네임 스페이스를 만들고 그 안에 CallTemplate
코드를 붙여 넣었습니다. VS는 InitializeComponent()
방법으로 괴롭 히고 현재 상황에서는 존재하지 않는다고 말했습니다. 기본적으로 네임 스페이스 코드의 한 부분을 다른 네임 스페이스로 마이그레이션하는 방법을 알아야합니다.
두 프로젝트를 하나의 프로젝트에 개별적으로 결합하거나 모든 사용자 정의 컨트롤 라이브러리로 만들겠습니까? –
서로 참조해야하는 경우 동일한 프로젝트에 있어야합니다.하나의 프로젝트 내에서 네임 스페이스로 분리하면이를 구성하는 가장 좋은 방법입니다. –
그래서 그것을하려고 할 때,'InitializeComponent()'메소드는 그것이 현재 컨텍스트에 존재하지 않는다고 말합니다. 어떻게 업데이트 할 수 있습니까? –