簡體   English   中英

使用水平滾動(wpf)將listview划分為列

[英]Dividing listview into columns, with horizontal scroll (wpf)

我有一個分為兩列的列表視圖。 問題是,如果進入列表視圖的信息太長,則字符串會發生什么。

如果我設置固定寬度,它將裁切一些寬度。 如果我設置了自動寬度,則listview列的初始狀態將看起來很糟。

固定寬度: 在此處輸入圖片說明 自動寬度: 在此處輸入圖片說明 有什么想法可以解決嗎?

相關的XAML:

<ListView Width="Auto" Height="Auto" Margin="10" Background="#092E3E" Foreground="White" ItemsSource="{Binding BackupEvents}" >
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            ...
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView AllowsColumnReorder="False">
            <GridView.ColumnHeaderContainerStyle>
                 ...
            </GridView.ColumnHeaderContainerStyle>

            <GridView.Columns>
                <GridViewColumn Width="200" Header="Time" DisplayMemberBinding="{Binding LVTime}"/>

                // auto or fixed?
                <GridViewColumn Width="Auto"/"520" Header="Details" DisplayMemberBinding="{Binding LVDetails}"/>
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>

我認為最好的解決方案是使列大小固定,但是如果需要,可以將文本/列表條目包裝成多行。 但是我不確定該怎么做...

您可以在一定寬度的數據后顯示省略號

我認為最好的解決方案是使列大小固定,但是如果需要,可以將文本/列表條目包裝成多行。 但是我不確定該怎么做...

您可以定義一個隱式TextBlock Style ,將GridView中所有TextBlocksTextWrapping屬性設置為Wrap

<ListView Width="Auto" Height="Auto" Margin="10" Background="#092E3E" Foreground="White" ItemsSource="{Binding BackupEvents}" >
    <!-- HERE: -->
    <ListView.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="TextBlock.TextWrapping" Value="Wrap" />
        </Style>
    </ListView.Resources>
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            ...
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView AllowsColumnReorder="False">
            <GridView.ColumnHeaderContainerStyle>
                ...
            </GridView.ColumnHeaderContainerStyle>

            <GridView.Columns>
                <GridViewColumn Width="200" Header="Time" DisplayMemberBinding="{Binding LVTime}"/>

                // auto or fixed?
                <GridViewColumn Width="Auto"/"520" Header="Details" DisplayMemberBinding="{Binding LVDetails}"/>
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM