Bạn có thể sử dụng ItemsControl
bằng một bảng điều khiển Grid
. Đây là một ví dụ. XAML:
<ItemsControl x:Name="myItems">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyText}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Style.Setters>
<Setter Property="Grid.Row" Value="{Binding MyRow}" />
<Setter Property="Grid.Column" Value="{Binding MyColumn}" />
</Style.Setters>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
codebehind (cho mục đích thử nghiệm):
public Window1()
{
InitializeComponent();
myItems.ItemsSource = new[] {
new {MyRow = 0, MyColumn = 0, MyText="top left"},
new {MyRow = 1, MyColumn = 1, MyText="middle"},
new {MyRow = 2, MyColumn = 2, MyText="bottom right"}
};
}
Tính năng này hoạt động tốt nếu bạn có một số hàng được hiển thị, nhưng nó không cho phép bạn hiển thị số hàng tùy ý dựa trên số lượng dữ liệu của bạn. – LJNielsenDk
Tôi đã cố gắng thiết lập hàng và cột từ DataTemplate (trên phần tử gốc trong mẫu) và tự hỏi tại sao nó không hoạt động. Điều này đã giúp rất nhiều. Cảm ơn! – qJake