2017-09-07 9 views
0

ListView 컨트롤 내에서 ItemContainerStyle을 변경하려면 DisplayMemberPath 속성을 사용하는 방법은 무엇입니까?ItemContainerStyle과 함께 ListView에서 DisplayMemberPath를 사용하는 방법은 무엇입니까?

나의 대조군에서 ListView 대조구를 사용하고, 대조군으로부터 Binding을 통해특성을 설정 하였다.

<ListView ItemsSource="{TemplateBinding ItemsSource}" 
      DisplayMemberPath="{TemplateBinding DisplayMemberPath}"> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ListViewItem}"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="Item:" /> 
          <TextBlock Text="{Binding}" /> 
          <TextBlock Text=", " /> 
         </StackPanel> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 

     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

XAML에서이 문제를 해결 할 수 있습니까? 원래 ControlTemplate에서 어떻게 해결 되었습니까?


나는 내가 수집 항목 및 DisplayMemberPath을 결합 MultiValueConverter, 그것을 해결하려고합니다.

<TextBlock> 
    <TextBlock.Text> 
     <MultiBinding Converter="{StaticResource NameToValueConverter}"> 
      <Binding /> 
      <Binding Path="DisplayMemberPath" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type ListView}}"/> 
     </MultiBinding> 
    </TextBlock.Text> 
</TextBlock> 

필요하지 않습니까? 또는 원래 ListView 컨트롤로 표시 값이 이미 해결 되었습니까?

답변

2

XAML로 해결할 수 있습니까?

아니, 당신은 사용 중DisplayMemberPath 또는 ItemTemplate/ItemContainerStyle 있지만 둘.

또한 속성은 기본 데이터 클래스의 속성 이름을 지정하는 string으로 설정되어야합니다. 이 아니며 바인드 할 수있는 종속성 속성이입니다.