2009-09-08 9 views
11

W moim prezentera mam tę właściwość:Jak powiązać listę <string> z ItemControl?

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

I chcę wymienić z nazwy z ItemsControl/DataTemplate tak:

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

Ponieważ lista rodzajowy nie nazwali właściwości , jak mogę odwołać się do wartości wartości w mojej instrukcji wiążącej?

Odpowiedz

29

Pozwól mi odpowiedzieć, to tylko {Binding}.

+0

+1. Tak. Myliłem to z 'Path = ... 'gdzie kropka działa. –

+9

FYI, "." działa z lub bez 'Path ='. Puste jest domyślnie interpretowane jako ".". Możesz więc napisać {Binding}, {Binding.} Lub {Binding Path =.} Zwróć uwagę, że {Binding Path =} nie zadziała - dostaniesz błąd kompilatora XAML. –

+2

haha. Pytanie jest zadawane o godz. 11:15 i odpowiada dokładnie dokładnie ta sama osoba minutę później. Wtedy odpowiedź jest akceptowana :) dobrze zrobione. –

0

Łatwiejszy sposób, aby osiągnąć to samo jest po prostu użyć:

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

Domyślnie ta stworzy pionowe StackPanel i dodać każdy element w swoim TextBlock. Według MSDN działa to w następujący sposób:

  • Ciąg znaków.
  • Obiekt DateTime.
  • Obiekt UIElement.
  • Panel kontrolny zawierający elipsę i blokadę tekstu.
Powiązane problemy