Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Высота строк в ListView.


Автор: CasperSC 1.8.2010, 15:48
Здравстуйте! Вот есть у меня ListView:
Код

                    <ListView Margin="6,62,105,58" Name="listViewMain" SelectionMode="Single" BorderThickness="1">
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Колонка Один" Width="200" DisplayMemberBinding="{Binding Path=Message}"/>
                                <GridViewColumn Header="Колонка Два" Width="120" DisplayMemberBinding="{Binding Path=NextDate}"/>
                                <GridViewColumn Header="Колонка Три" Width="110" DisplayMemberBinding="{Binding Path=ModeString}"/>
                            </GridView>
                        </ListView.View>
                    </ListView>


При добавлении элемента в список, получается, что каждая строка в списке будет зависеть от длинны сообщения ( {Binding Path=Message} ). То есть может быть так, первая строка высотой 20, втора 75, третья 30 и т.д. А как сделать, чтобы каждая строка была одного размера? Вот как у меня получается сейчас:
http://www.your-assistant.ru

Автор: Kefir 3.8.2010, 19:13
Для одной или всех (лучше для всех если везде может быть новая строка) ставь дата темплейт с SharedSizeGroup рядом. Вот так:

Код


        <ListView Grid.IsSharedSizeScope="True" Margin="6,62,28,58" Name="listViewMain" SelectionMode="Single" BorderThickness="1">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Колонка Один" Width="200">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto" SharedSizeGroup="MySizeGroup"/>
                                    </Grid.RowDefinitions>
                                    <Border>
                                        <TextBlock Text="{Binding Message}"/>
                                    </Border>
                                </Grid>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="Колонка Два" Width="120" DisplayMemberBinding="{Binding Path=NextDate}"/>
                    <GridViewColumn Header="Колонка Три" Width="110" DisplayMemberBinding="{Binding Path=ModeString}"/>
                </GridView>
            </ListView.View>
        </ListView>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)