2011-12-29 2 views
5

시각적 요소가없는 간단한 유틸리티 클래스를 만들고 XAML에서 데이터 바인딩을 정의 할 수 있도록 만들고 싶습니다. DependencyObject에서 파생 된 클래스를 만들고 Window.Resources 섹션에서 만들려고했지만 생성자를 호출하지 않습니다.XAML에서 클래스의 인스턴스를 만드는 방법은 무엇입니까?

+0

나는이 문제에 대한 더러운 해결 방법을 발견했습니다 그래서 클래스 소스에 그렇게 같은 방법이 있어야합니다. – Poma

+0

좋은 작은 해킹 :) – BigL

답변

1

인스턴스를 실제로 사용할 때 생성되는 것처럼 보입니다. 이 문제에 대한 더러운 해결 방법을 찾았습니다 - FindResource("myClass");을 주 양식 생성자에 배치하십시오.

4

당신은 IntelliSense를 도움이 쉬운 단지

xmlns:yourNamespace="clr-namespace...." 

로에 네임 스페이스를 추가 app.xaml에서 클래스를 인스턴스화 할 수 있습니다.

그리고 다음에 Application.Resources에 당신이 당신의 클래스 I이 당신을 도움이되기를 바랍니다

<Application.Resources> 
    <yourNamespace:YourClass x:Key="yourClassInstanteName" />  
</Application.Resources> 

을 만들 수 있습니다.

+0

나는 그것을했다. 문제는 클래스 인스턴스가 런타임에 생성되지 않는다는 것입니다 (생성자에서 중단 점을 삭제하려고합니다). – Poma

+3

실제로 인스턴스를 만들 때 * – Poma

+0

예하지만 바인딩을 사용하고 있으므로 인스턴스화해야합니다. – BigL

0

저는 이전 질문에 게시하고 있지만 답변을 찾으려고 할 때이 문제가 발생했습니다. 큰 L 게시 코드는 참으로 정확했다 :

xmlns:yourNamespace="clr-namespace...." 

장소 응용 프로그램 자원에 복사본 :

<Application.Resources> 
    <yourNamespace:YourClass x:Key="yourClassInstanteName" />  
</Application.Resources> 

이 정보에 추가 키 클래스는 기본 생성자를 가질 필요가 있다는 것입니다. -;`기본 폼 생성자`(때문에) findResource ("myClass가")를 배치 할

public yourClassName() 
관련 문제