2009-09-08 5 views
11

나는이 속성이 있습니다목록 <string>을 ItemsControl에 바인딩하려면 어떻게합니까? 내 발표자에

public List<string> PropertyNames { get; set; } 

을 그리고 나는이 같은 ItemsControl에/DataTemplate을로 이름을 나열 할 :

<ItemsControl ItemsSource="{Binding PropertyNames}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Value}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

일반 목록이 명명 된 속성이 없기 때문에 , 내 바인딩 문에서 을 어떻게 참조합니까?

답변

29

대답 해 드리겠습니다. 그냥 {Binding}입니다.

<ItemsControl ItemsSource="{Binding PropertyNames}"/> 

기본적으로이 수직 StackPanel의를 생성하고 자신의 TextBlock의 각 요소를 추가

+0

+1. 네. 나는 그것을 도트가 작동하는'Path = ...'와 혼동했다. –

+9

FYI, '.' 'Path ='가 있든 없든 작동합니다. 블랭크는 암시 적으로 '.'로 해석됩니다. 따라서 {Binding}, {Binding.} 또는 {Binding Path =.}를 작성할 수 있습니다. {Binding Path =}는 작동하지 않습니다. XAML 컴파일러 오류가 발생합니다. –

+2

haha. 질문은 11시 15 분에 질문하고 바로 1 분 후에 똑같은 사람이 대답했습니다. 그러면 대답은 받아 들여집니다 :) 잘 했어. –

0

같은 일을 수행하는 쉬운 방법은 간단하게 사용하는 것입니다. MSDN에 따르면이 값은 다음에 해당합니다.

  • 문자열입니다.
  • DateTime 개체입니다.
  • UIElement 개체입니다.
  • 타원과 TextBlock이 포함 된 Panel 컨트롤입니다.
관련 문제