В Listview не отображается полоса прокрутки с пользовательским контролем пользователя - PullRequest
1 голос
/ 05 апреля 2019

При добавлении downloadcontrols к моим ObservableCollection<DownloadControl> они отображаются в XAML ListView.Однако я не могу отобразить полосы прокрутки без установки явной высоты.Когда я установил полосу прокрутки, чтобы показать.Он появляется слева, а не справа, что заставляет меня поверить, что переплет не в правильном месте.Но не удается заставить его работать должным образом.Я использую разные Listview s только с метками и привязками, и они ведут себя как положено.

Я пытался изменить макет, используя gridview и gridviewcolumn Я пытался связываться с DataTemplate, ноэто приведет к нарушению привязки данных в UserControl.

Мой текущий xaml в моем главном окне, отображающий пользовательские элементы управления в виде списка

<ListView Name="ListViewDownloads" ItemsSource="{Binding DownloadControls}">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="500"/>
         </GridView>
     </ListView.View>
</ListView>
public ObservableCollection<DownloadControl> DownloadControls
{
    get => (ObservableCollection<DownloadControl>)GetValue(DownloadControlsProperty);
    set => SetValue(DownloadControlsProperty, value);
}

// Using a DependencyProperty as the backing store for DownloadControls.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty DownloadControlsProperty =
   DependencyProperty.Register("DownloadControls", 
   typeof(ObservableCollection<DownloadControl>), typeof(MainWindow));

Пользовательский элемент управления DownloadControl

<UserControl x:Class="Robeats_Desktop.UserControls.DownloadControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Robeats_Desktop.UserControls"
             mc:Ignorable="d">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="250" />
            <ColumnDefinition Width="1*" MinWidth="150" />
        </Grid.ColumnDefinitions>
        <Image Source="{Binding Source}" HorizontalAlignment="Left" VerticalAlignment="Top" />
        <Grid Grid.Column="1" Name="GridInfo">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="70" />
                <ColumnDefinition Width="3*" MaxWidth="250" />
            </Grid.ColumnDefinitions>
            <StackPanel>
                <Label>Title:</Label>
                <Label>Uploader:</Label>
                <Label>Duration:</Label>
            </StackPanel>
            <StackPanel Grid.Column="1">
                <Label Content="{Binding Title}" HorizontalAlignment="Left"
                       VerticalAlignment="Top" />
                <Label Content="{Binding Uploader}" HorizontalAlignment="Left"
                       VerticalAlignment="Top" />
                <Label Content="{Binding Duration}" HorizontalAlignment="Left"
                       VerticalAlignment="Top" />
                <ProgressBar Value="{Binding Progress}" Background="Transparent" Name="ProgressBarDownload" />
            </StackPanel>
        </Grid>
    </Grid>
</UserControl>

current result это текущий результат.Ожидаемый результат - иметь полосу прокрутки справа, когда мои элементы больше текущей высоты окна.

Полный исходный код: https://github.com/robeats-player/Robeats-Desktop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...