Заполнить сетку из двух столбцов привязкой данных? - PullRequest
0 голосов
/ 05 февраля 2011

Как мне заполнить сетку из двух столбцов объектами из моей наблюдаемой коллекции?

Я пытался добиться этого эффекта с помощью панели обертывания takeits, но предметы просто складываются.

<toolkit:WrapPanel Margin="5,0,0,0" Width="400">
    <ItemsControl ItemsSource="{Binding Trips}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel Height="236" Width="182">
                    <Button Style="{StaticResource VasttrafikButtonTrip}">
                        <StackPanel Width="152" Height="140">
                            <TextBlock Text="{Binding FromName}" />
                            <TextBlock FontFamily="Segoe WP Semibold" Text="till" />
                            <TextBlock Text="{Binding ToName}" />
                        </StackPanel>
                    </Button>
                    <TextBlock HorizontalAlignment="Left" Width="160" FontSize="16" FontWeight="ExtraBlack" Text="{Binding TravelTimeText}" />
                    <TextBlock HorizontalAlignment="Left" Width="160" Margin="0,-6,0,0" FontSize="16" Text="{Binding TransferCountText}" />
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</toolkit:WrapPanel>

1 Ответ

2 голосов
/ 05 февраля 2011

Единственным дочерним элементом для WrapPanel будет ItemsControl, поэтому укладка выполняется внутренним ItemsPanel в ItemsControl, который по умолчанию равен StackPanel с вертикальной ориентацией.Таким образом, чтобы получить «две колонки», попробуйте переместить WrapPanel в ItemsControl.ItemsPanel вместо этого вот так

<ItemsControl ItemsSource="{Binding Trips}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <toolkit:WrapPanel Margin="5,0,0,0" Width="400"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Height="236" Width="182">
                <Button Style="{StaticResource VasttrafikButtonTrip}">
                    <StackPanel Width="152" Height="140">
                        <TextBlock Text="{Binding FromName}" />
                        <TextBlock FontFamily="Segoe WP Semibold" Text="till" />
                        <TextBlock Text="{Binding ToName}" />
                    </StackPanel>
                </Button>
                <TextBlock HorizontalAlignment="Left" Width="160" FontSize="16" FontWeight="ExtraBlack" Text="{Binding TravelTimeText}" />
                <TextBlock HorizontalAlignment="Left" Width="160" Margin="0,-6,0,0" FontSize="16" Text="{Binding TransferCountText}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...