2010-02-18 3 views
4

내가 가진에있을 때 "유형을 찾을 수는"XAML 디자이너 컨버터는 WPF UserControl을 이런 식으로 참조 바인딩 컨버터 UserControl.Resources

<UserControl x:Class="MyControl" x:Name="MyControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:TheMainNamespaceOfThisAssembly"> 

    <UserControl.Resources> 
     <local:ConfidenceColorConverter x:Key="ConfidenceColorConverter"/> 
    </UserControl.Resources> 

나는 나중에 바인딩 컨버터를 사용합니다. 내 디자인 창에서 사용자 정의 컨트롤을 참조하십시오. 그런 다음 컴파일 한 다음이 사용자 정의 컨트롤을 기본 창에 배치하십시오. 나는 그것을 실행하고 그것을 작동합니다. 그러나 여전히 다음과 같이 구분되는 기본 창에서 디자이너를 사용하고 싶습니다.

'MyControl'유형의 인스턴스를 만들 수 없습니다.

그래서 나는 how to debug the designer을 알았습니다. 내가 할 때 XamlParseException이 발생한다.

'TheMainNamespaceOfThisAssembly.ConfidenceColorConverter'형식을 찾을 수 없다. 컴파일 할 때 사용 된 어셈블리가로드 할 때 사용 된 어셈블리와 다를 수 있으며 형식이 없습니다. 마크 업 파일의 오류 ...

변환기에 대한 참조를 제거하면 내 사용자 정의 컨트롤이 주 창에서 디자이너에 잘 표시됩니다. 디자이너를 부셔 버리지 않도록 변환기에 대한 내 참조를 수정하는 방법에 대한 아이디어가 있습니까?

Troubleshooting WPF Designer Load Failures이 적용되는지 여부를 알 수 없습니다.

+0

유사한 클래스 이름과 키로 인해 어떤 종류의 오류도 발생하지 않았으므로 대답을 삭제했습니다. 나는 명백하게 다음과 같이 질문해야한다 : 당신은 어셈블리에서'ConfidenceColorConverter'라는 클래스를 가지고 있는가? 공개입니까? –

+0

예; ConfidenceColorConverter, MyControl 및 MainWindow는 모두 프로젝트 네임 스페이스 TheMainNamespaceOfThisAssembly와 동일한 프로젝트에 있습니다. –

+0

깨끗한 프로젝트에서 이것을 재현 해보십시오. * 실패해서는 안되기 때문에 프로젝트에서 이상한 부작용없이 재현하는 것이 중요합니다. – Sander

답변

1

VS2008 디자이너는 다른 사람들과 대화 한 후에 많은 경우에 사용하지 못하게하는 많은 문제가 있습니다. 우리는 포기했다.

업데이트 : 일부 사용자, 특히 Joel Cochran이 XAML 개발에서 four principles of MVVM을 준수하는 한 더 많은 Expression Blend 디자인보기를 사용하고있는 것으로 보입니다.

1

기존 프로젝트를 편집하는 대신 깨끗한 새 프로젝트에서 문제를 재현 해 주시겠습니까? 클래스 이름과 달라야하는 값 ": 클래스 X"변경 "이름 X"당신이 네임 스페이스를 추가해야합니다 같이

<UserControl x:Class="MyControl" x:Name="MyControl"... 

을 가질 수 없습니다. 이런 종류의 오류를 설명하고 수정할 때 디자이너가 깨끗한 프로젝트를 만들면 잘 작동합니다. 중요하지 않다고 생각되는 질문에서 일부 세부 사항을 생략 할 수도 있지만, 그 세부 사항은 모든 차이를 만들 수 있습니다.

+0

개인 필드와 XAML 키가 camelCase이고 클래스와 유형이 PascalCase 인 명명 규칙을 사용해보십시오. –

+0

@ 대니 바로 트 - 응? –

+0

MyControl을 클래스 이름으로 유지하면서 x : 이름을 "thisControl"로 변경해 보았습니다. 리소스로 사용자 정의 컨트롤 및 Windows에서 사용되는 사용자 정의 컨트롤을 바인딩에 사용되는 변환기로 새 프로젝트를 만들려고했습니다. 실제로 Stanislav는 말합니다. 그런 다음 원래 프로젝트에서 내 Window와 사용자 정의 컨트롤을 네임 스페이스와 XAML 만 필요한 것으로 단순화했습니다 (거의 빈 테스트 프로젝트와 일치 함). 여전히 오류가 발생합니다. 나는 사용자 컨트롤의 코드 숨김을 최소한으로 줄이고있다. –