#wpf #listview #gridview
#wpf #listview #просмотр сетки
Вопрос:
У меня ListView
определено следующим образом:
<ListView Grid.Row="3"
ItemsSource="{Binding Items}" HorizontalAlignment="Stretch">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridView.Columns>
<GridViewColumn Header="Camera" DisplayMemberBinding="{Binding CameraName}" />
<GridViewColumn Header="Stato">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<svgc:SvgViewbox x:Name="svgIcon" Height="20" Width="20" Stretch="Uniform" />
<customUserControl:ExtendedBinding
Source="{Binding ElementName=svgIcon, Path=Source, Mode=TwoWay}"
Target="{Binding Path=IsNotConnected, Converter={StaticResource BoolToSvgPathConverter}, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Retry" Width="46" IsEnabled="{Binding IsNotConnected}" Click="TryReconnection_Onclick"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Проблема в том, что ListView
показанный имеет один дополнительный столбец, и я не могу понять причину этого. У вас есть какие-либо предложения?
Ответ №1:
Подгоните свой столбец к нужному вам размеру с помощью «автоматической» ширины:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ListView Grid.Column="0" ItemsSource="{Binding Items}" HorizontalAlignment="Stretch">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridView.Columns>
<GridViewColumn Header="Camera" DisplayMemberBinding="{Binding CameraName}" />
<GridViewColumn Header="Stato">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Retry" Width="46" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
Комментарии:
1. Я добавил Width=»Auto» к каждому столбцу, но ничего не изменилось.
2. Не для каждого столбца, а для всего ListView, как я сделал. Я обновлю ответ.
3. О, спасибо! Я не понимал, что мне нужно было поместить ListView в сетку. Спасибо, это работает!