2009-09-08 37 views
12

Trong ViewModel của tôi, tôi có một danh sách các mục mà tôi muốn có một khung lưới trong quan điểm của tôi để liên kết với (các mục sẽ là trẻ em lưới). Danh sách là danh sách các kiểu xem cho các mục.Làm thế nào để bạn ràng buộc trẻ em của một mạng lưới vào danh sách?

Làm cách nào để bạn liên kết một lưới với danh sách (tôi có thể truy cập .children trong mã nhưng không phải xaml)? Ngoài ra, làm thế nào để bạn chỉ định mẫu dữ liệu (một tệp xaml khác) cho các kiểu xem trong danh sách sao cho chúng được hiển thị chính xác trong lưới.

Cảm ơn

Trả lời

22

Sử dụng một ItemsControl với ItemsPanel thiết lập để một Lưới:

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

Trong 's ItemContainerStyleItemsControl, bạn có thể muốn ràng buộc Grid.RowGrid.Column tài sản gắn liền với một số tài sản của các mặt hàng:

<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

Cảm ơn. Tôi cũng đã tìm ra phần thứ hai của câu hỏi của tôi nếu có ai khác đi qua này

+0

Đây là công việc xử lý nếu bạn biết có bao nhiêu hàng và cột bạn cần, nhưng nếu bạn muốn nhiều như hàng/cột tối đa thì sao? Có cách nào để tự động phát các định nghĩa hàng/cột? –

Các vấn đề liên quan