2010-08-05 5 views
4

안녕하세요. 그렇기 때문에 Silverlight에서 사용자 지정 컨트롤이 있습니다. 실제로 무엇인지는 중요하지 않지만 트리 뷰, 슬라이더 및 기타 다른 쓰레기가있는 큰 합성물입니다.Silverlight에서 Intellisense에 속성 표시하기

이제 컨트롤에는 defaultTemplate이라는 인스턴스 변수가 있습니다. DataTemplate 형식입니다. 기본적으로 응용 프로그램 개발자가 myControl.setTemplate (DataTemplate dt)을 호출하지 않으면 TreeViewItem이 헤더 템플릿으로 사용하는 템플릿입니다. 그냥 속성은 공공 만들고 그것을 getter 및 setter를 제공함으로써

, 그것은

<myNamespace:myControl x:Name="theControl" defa 

인텔리 내 클래스가 defaultTemplate 속성을 가지고 있다는 사실에 집어 들고 ... 나는 다음을 입력 인텔리에 표시 그것을 옵션으로 나열합니다.

내가 좋아하는 것이 무엇 :

내가 계속 위의 기능을 좋아하지만, 자동으로 값에 대한 옵션을 나열하는 IntelliSense를위한 기능을 추가합니다. 따라서 컨트롤에 액세스 할 수있는 리소스 사전에 정의 된 이러한 데이터 템플릿이 있습니다. 내가 입력이 부분에 도착하면 그들을 옵션으로 팝업 할 :

<myNamespace:myControl x:Name="theControl" defaultTemplate="_" 

난 기능성, TextBlock이의 전경 특성에서 찾을 수 있습니다 찾고. 입력 할 때

foreground="" 선택할 수있는 색상 목록이 시작됩니다. 내 데이터 템플릿의 이름으로 상수를 정의하고 인텔리 센스를 사용하여 그러한 것을 선택하는 것이 좋습니다.

어떻게 해결할 수 있습니까? 고맙습니다!


해명 편집 :은 내가 XAML 속성에 대한 허용 입력입니다 상수 목록의 인텔리인지 확인해야합니다. 그래서 내 defaultTemplate 속성은 문자열 일 수 있습니다. 그 문자열이 내 코드에서 의미하는 바를 다룰 것입니다. 그러나 XAML에서 해당 문자열을 입력 할 때 어떤 문자열을 입력해야하는지 알기 위해서는 인텔리 센스가 필요합니다. 따옴표를 입력하면 포어 그라운드 색상이 "Azure, Beige ... LemonChiffon ... 등"인 인텔리 센스 목록을 표시합니다. 그 목록에 인텔리 센스를 어떻게 제공합니까? 감사합니다.


최종 편집 : siege898 인텔리 나를 제공하는 목록에서 defaultTemplate을 위해 내가 할 수있는 지금의 선택 나의 값 감사합니다. 그러나, 나는 또한 자신의 데이터 템플릿을 정의하고 그 이름을 지정하는 옵션을 내 컨트롤을 사용하는 응용 프로그램 개발자에게 제공 할 수 있기를 원합니다.

예를 들어 Bob은 내 응용 프로그램에서 내 컨트롤을 사용하고 있습니다. 내가 제공하는 템플릿 중 어느 것도 그를 위해 적합하지 않습니다. 따라서 Bob은 리소스 사전에 bobTemplate이라는 응용 프로그램 용 데이터 템플릿을 만듭니다. Bob이 xaml defaultTemplate="bobTemplate"의 defaultTemplate 필드에 입력 할 수 있고 오류가 발생하지 않도록하고 싶습니다. 필드가 내 열거 형의 값을 기대하기 때문에 현재 문제가 있다고 생각합니다. 아무도 내가 열거 형에서 생성 된 드롭 다운 목록을 모두 제공하도록 설정할 수 있지만 여전히 사용자 지정 문자열을 수락하는지 알고 있습니까? 유형 변환기를 생각하고 있었지만 원하는대로 사용하는 방법을 잘 모르겠습니다 ...

답변

4

당신이 일하는 것이 열거 된 속성이라고 생각합니다. 그래서 여기에 내가 제안 내용은 다음과 같습니다

public enum Templates 
{ 
    Template1, Template2, ... 
} 

public Templates defaultTemplates 
{ 
    get; 
    set; 
} 

그러나, 사용자가 (예를 template1를 위해) 값을 통과 할 때 열거 속성, 앱이 볼 수는 있기 때문에 그 정수 (0 = template1를, 1 = Template2로 ...)

그래서 사전의 일종을 유지하거나 각 정수를 원하는 템플릿에 매핑하는 조회 기능을 사용하는 것이 좋습니다. (또는 위에 언급 한 형식 변환기조차도)

이것이 intellisense에 추가되는 이유는 100 % 확신 할 수 없지만 XAML에서도 항상 그렇습니다. 나는 VS가 defaultTemplates가 템플릿의 값 중 하나에 설정되어 목록을 채울 수 있어야한다고 생각합니다.

희망이 있으시길 바랍니다.

+0

감사합니다, 근무했습니다! Intellisense가 열거 형 값을 인식하는 방법을 아는 사람은 누구입니까? – NickHalden

3

열거 형으로 정의 된 속성 및 종속성 속성에서 가져올 열거 형을 노출하지 않는 한 형식 변환기를 제공해야합니다. XAML 파서에 문자열을 다른 형식으로 구문 분석하는 "지침"을 제공합니다.

하는 배경 여기를보세요 : 예를 들어, 속성이 정적 색상 클래스에 맵핑되어, 전경의 경우 http://umairsaeed.com/2010/02/03/creating-a-custom-xaml-typeconverter/

: http://msdn.microsoft.com/en-us/library/cc645047(VS.95).aspx

그런 다음 튜토리얼 여기를 봐 XAML에 표시된 값 목록을 제공합니다.

+0

흠, 그래,하지만 내가 정말로 찾고있는 것은 내가 생각하기에 게시물의 첫 번째 부분이다. Intellisense에게 가치 선택에 대한 지식을 어떻게 제공합니까? 그래서 포어 그라운드 예제에서, 팝업하는 색상 목록에 매핑하는 방법은 무엇입니까? 감사합니다 – NickHalden

관련 문제