Имеется следующий ListView
<ListView ItemsSource="{Binding List}"
MaxHeight="250"
util:GridViewSort.AutoSort="True"
AlternationCount="2"
SizeChanged="ListView_SizeChanged">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Height" Value="30" />
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="White" />
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#FFF8F8F8" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Название" DisplayMemberBinding="{Binding Name}" util:GridViewSort.PropertyName="Name"/>
<GridViewColumn Header="Главы" Width="Auto">
<GridViewColumn.CellTemplate >
<DataTemplate>
<TextBlock Text="{Binding ProgressCh}" TextAlignment="Center" Padding="5,0"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Тома" Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ProgressVol}" TextAlignment="Center" Padding="5,0"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Оценка" util:GridViewSort.PropertyName="Score" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Score}" TextAlignment="Center" Padding="5,0"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Тип" util:GridViewSort.PropertyName="Kind" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Kind}" TextAlignment="Center" Padding="5,0"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Отображается он вот так:
Хотелось бы узнать, как настроить столбцы так, чтобы все кроме первого столбца занимали ширину по содержимому самого широкого элемента, а первый столбец занимал всё оставшееся пространство.
Установка Width="Auto" как -то не помогла. Второй и Третий столбцы всё равно урезаются. Плюс появляется горизонтальный Scroll, за которым скрыт последний столбец =(
Подскажите как подобное можно реализовать?
Естественно, Auto не работает, потому что оно делает ширину равной максимальной ширине элемента; а других спецзначений у ширины нет. Вы, тем не менее, можете попробовать сделать следующее:
_
private void ListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
ListView listView = sender as ListView;
GridView gView = listView.View as GridView;
var totalWidth = listView.ActualWidth - (SystemParameters.VerticalScrollBarWidth+10);
var usedWidth = 0.0;
for(int i=1;i<gView.Columns.Count;i++){
usedWidth+=gView.Columns[i].ActualWidth;
}
gView.Columns[0].Width = totalWidth-usedWidth;
}
(Также этот код надо вызвать при изменении содержимого списка).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите! Не могу собрать проектДелаю релиз - у меня запускается, на 4 других машинах либо ошибка(на одной машине), либо совсем ничего
Такой вопрос, у меня есть БД и цена хранится в decimal
Не пишет ошибку что логин занят и что поля пустые, всегда пишет что успешно зарегистрированыВ базу заносит если верно данные вести