2009-09-21 3 views
1

가 나는 목록 < 인 ProductInfo> ...텍스트를 유지하지 않는 AutoCompleteBox

public class ProductInfo 
{ 

    public override string ToString() 
    { 
     return Name + " - " + Description; 
    } 

    public string Name { get; set; } 
    public string Description { get; set; } 
} 

이 성공적으로 정의 된 다음 DataTemplate을 가진 사용자 AutoCompleteBox에 이름과 설명을 반환 반환하고있어 실버 라이트 테스트 프로젝트가 있습니다

<DataTemplate x:Key="SearchBoxDataTemplate"> 
    <StackPanel Orientation="Vertical" HorizontalAlignment="Right" Margin="0, 0, 8, 0"> 
     <TextBlock HorizontalAlignment="Right" Foreground="Blue" 
      FontSize="18" Text="{Binding Name}" Padding="2" /> 
     <TextBlock HorizontalAlignment="Right" Foreground="Black" 
      FontSize="8" Text="{Binding Description}" Padding="2" /> 
    </StackPanel> 
</DataTemplate> 
항목이 선택되면 의

는 그러나 AutoCompleteBox는 (WCF 서비스에 의해 반환 된) 오브젝트 유형의 이름 ...

IdeasAndTesting_SL_01.ServiceReference1.ProductInfo 

당신은 내가의 toString() 메서드를 오버라이드 것을 알 수 있습니다으로 채 웁니다 인 ProductInfo 객체는, 그래서 왜 않습니다이 또는 그것을 해결하는 방법을 모르겠어요. 아이디어?

답변

2

ProductInfo와 서비스 참조가 실제로 다른 개체 일 수 있습니다.

AutoCompleteBox의 ValueMemberPath 또는 ValueMemberBinding 속성을 속성 (예 : DisplayText, 동일한 Name + "-"Description)을 반환하는 것으로 설정하는 것이 좋습니다.

값 멤버 속성은 항상 개체의 ToString에 대해 고려됩니다.

2

생성 된 서비스 프록시 클래스와 동일한 네임 스페이스를 가진 ProductInfo의 부분 클래스를 만들고 내부에 ToString()을 재정의합니다.

+0

+1 마크 티의 대답은 내가 향하고있는 곳이다. –

관련 문제