2016-10-06 3 views
0

Ich habe ein ListView wie folgt definiert:WPF Listview mit extra Spalte

<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> 

Das Problem ist, dass die ListView hat eine zusätzliche Spalte angezeigt und ich kann den Grund, warum es nicht verstehen. Hast du irgendwelche Vorschläge?

Antwort

0

Legen Sie Ihre Spalte auf die genaue Größe, die Sie von "Auto" Breite benötigen:

<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> 
+0

I Width = "Auto" zu jeder Spalte hinzugefügt, aber es ändert sich nichts. –

+0

Nicht zu jeder Spalte, zum gesamten ListView wie ich. Ich werde die Antwort aktualisieren. – Rom

+0

Oh danke! Ich habe nicht verstanden, dass ich das ListView in ein Grid legen musste. Danke, es funktioniert! –