Изменение ListView ItemsPanels высота динамически - PullRequest
0 голосов
/ 19 сентября 2018

Я бы хотел динамически изменять высоту панели элементов ListView при увеличении количества содержащихся в ней элементов.

Вот как мой ListView установлен в XAML:

<ListView x:Name="listANALOG" BorderThickness="0" Padding="0" Margin="4,4,4,4" Background="MediumPurple" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.Row="2" Grid.ColumnSpan="2">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Border BorderBrush="DarkOrange" Background="{Binding EtatCMD}" BorderThickness="2"  MouseDown="WrapPanel_MouseDown" Margin="-4,0,-2,0">
                <DockPanel  Width="65" Height="65" Margin="2" LastChildFill="True" >
                    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Height="10" IsHitTestVisible="False" Margin="0">
                        <Ellipse Fill="{Binding Trigger1}" Height="10" Margin="2,0,0,0" Width="10" />
                        <Ellipse Fill="{Binding Trigger2}" Height="10" Margin="2,0,0,0" Width="10" Opacity="{Binding ShowTrigger2}"/>
                        <Ellipse Fill="{Binding Trigger3}" Height="10" Margin="2,0,0,0" Width="10" Opacity="{Binding ShowTrigger3}"/>
                    </StackPanel>
                    <Label DockPanel.Dock="Top" Content="{Binding Name}"  FontSize="10" Margin="0" FontWeight="DemiBold" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="0" ToolTip="Used in :" ToolTipOpening="Label_ToolTipOpening_2"/>
                    <Label DockPanel.Dock="Bottom" Content="{Binding CommandeStr}" Margin="0" Padding="0" HorizontalAlignment="Left" VerticalAlignment="Bottom" IsHitTestVisible="False"/>
                    <TextBox  MaxLength="14" Text="{Binding UserName}" Margin="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Background="Transparent" BorderThickness="0" Padding ="0" VerticalAlignment="Top" TextWrapping="Wrap"/>
                </DockPanel>
            </Border>
        </DataTemplate>
    </ListView.ItemTemplate>
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel x:Name="pnlAnalog" Orientation="Vertical" VerticalAlignment="Stretch" Height="185"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

MyListView «listANALOG» заполняется в следующем коде:

listANALOG.ItemsSource = hConfig.listANALOG;

Моя проблема в том, что у меня нет доступа к высоте WrapPanel (pnlAnalog), чтобы увеличить ее.

Я бы не хотелУ меня нет такого дизайна IHM, но это старое программное обеспечение, у нас недостаточно ресурсов, чтобы переписать его.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете получить ссылку на WrapPanel, используя этот FindChild<T> метод:

WrapPanel wrapPanel = FindChild<WrapPanel>(listANALOG, "pnlAnalog");
wrapPanel.Height = 500;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...