2009-09-08 12 views
12

W moim ViewModelu mam listę elementów, które chciałbym siatki w moim widoku do związania (elementy będą siatki dzieci). Lista jest listą modeli widoków dla przedmiotów.W jaki sposób wiążą dzieci w siatce z listą?

Jak powiązać siatkę z listą (mogę uzyskać dostęp. Dzieci w kodzie, ale nie xaml)? Ponadto, w jaki sposób określić szablon danych (inny plik xaml) dla modeli widoku na liście, aby były poprawnie renderowane w siatce.

Dzięki

Odpowiedz

22

użyć ItemsControl z ItemsPanel zestaw do sieci:

<ItemsControl ItemsSource="{Binding TheList}"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <Grid/> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 

w ItemsControl „s ItemContainerStyle, warto związać Grid.Row i Grid.Column załączone właściwościach pewnym mieniu elementy:

<ItemsControl.ItemContainerStyle> 
    <Style TargetType="{x:Type FrameworkElement}"> 
     <Setter Property="Grid.Row" Value="{Binding RowIndex}"/> 
     <Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/> 
    </Style> 
    </ItemsControl.ItemContainerStyle> 
+1

Dzięki. Ja również zorientowali się drugą część mojego pytania, czy ktoś napotka ten

+0

To działa, jeśli wiesz, ile wierszy i kolumn potrzebujesz, ale co jeśli chcesz tyle, ile maksymalny wiersz/kolumna? Czy istnieje sposób automatycznego generowania definicji wierszy/kolumn? –

Powiązane problemy