2011-10-04 7 views
3

몇 가지 속성 (예 : object.category.Name + "->"+ object.description)을 합성 한 DisplayMemberPath를 만들어야합니다. 동적 데이터 형식은 객체를 캡슐화하고 displayField라는 새로운 속성을 추가합니다.이 속성은 새 객체를 만드는 작업과 관련이없는 적절한 방법이 있는지 궁금합니다. 어떤 아이디어?콤보 박스 용 DisplayMemberPath

답변

8

DisplayMemberPath은 항목에 복잡한 템플릿이 필요없는 경우를위한 "바로 가기"입니다. 더 많은 권한이 필요한 경우

<ComboBox ItemsSource="{Binding Items}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock> 
       <TextBlock.Text> 
        <MultiBinding StringFormat="{}{0} -> {1}"> 
         <Binding Path="Category.Name" /> 
         <Binding Path="Description" /> 
        </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 
+0

감사합니다. 그것은 어떻게 displaymemberpath에 구체적으로 바인딩됩니다. 예를 들어, selectedvaluepath와 dislaymemberpath에 대한 두 개의 항목 템플리트가 필요한 경우 어떻게해야합니까? – dregan

+0

@ user978744, DisplayMemberPath 대신 ItemTemplate을 지정할 수 있지만 SelectedValuePath에 대해 동일한 작업을 수행 할 수는 없습니다. 선택한 값이 표시되지 않으므로 의미가 없습니다. 복합 SelectedValue가 필요한 경우 ViewModel에 새 속성을 만듭니다. –