0

如何动态对齐列表视图中的列表视图项目。

-- 不在 XAML 中 --

lv.View = GridView

GridView.Columns.Add(New GridViewColumn With {.Header = "CrewId", .DisplayMemberBinding = New Binding("CrewId")})
GridView.Columns.Add(New GridViewColumn With {.Header = "FirstName", .DisplayMemberBinding = New Binding("FirstName")})
GridView.Columns.Add(New GridViewColumn With {.Header = "LastName", .DisplayMemberBinding = New Binding("LastName")})
GridView.Columns.Add(New GridViewColumn With {.Header = "Country", .DisplayMemberBinding = New Binding("Country")})
GridView.Columns.Add(New GridViewColumn With {.Header = "Rank", .DisplayMemberBinding = New Binding("Rank")})

Try
    lv.ItemsSource = dsCrew.Tables(0).DefaultView
Catch ex As Exception
    MsgBox(ex.Message)
End Try
4

1 回答 1

1

您可以简单地使用该HorizontalContentAlignment属性来对齐所有ListViewItems:

lv.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Right;

更新>>>

啊,这就是为什么这个解决方案不起作用......你有不止一列。当然,在你展示你的代码之前,我不能说出来。好的,我找到了一种将所有列向右对齐的方法...我知道这不完全是您所追求的,但我会在此处添加此内容,直到找到更好的解决方案:

Style style = new Style(typeof(ListViewItem));
style.Setters.Add(new Setter(ListViewItem.HorizontalContentAlignmentProperty, 
    HorizontalAlignment.Right));
YourListView.ItemContainerStyle = style;

在此期间,您也许可以解决其余的问题。


更新 2 >>>

好的,所以我在网上进行了很好的搜索,这是我为你找到答案的最接近的结果......有一篇文章叫做How to center and right align text inside a GridViewColumn in a WPF ListView Control on Tracy Sells 的网站展示了如何在 XAML 中执行此操作...是的,我知道您希望在代码中使用它,但是您必须在这里做一些工作:

<ListView 
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <TextBlock Text="MyText" TextAlignment="Center" />   
            </GridViewColumn>
        </GridView>
    <ListView.View>
</ListView>

我们可以调整我的第二段代码来实现ItemContainerStyle

Style style = new Style(typeof(ListViewItem));
style.Setters.Add(new Setter(ListViewItem.HorizontalContentAlignmentProperty, 
    HorizontalAlignment.Stretch));
YourListView.ItemContainerStyle = style;

不幸的是,这就是我所能做到的,因为我从未真正使用过ListView. 所以现在,你只需要了解如何设置TextAlignment相关的内容GridViewColumn。我注意到在代码中做这种事情并没有太多帮助,这仅仅是因为这不是通常的做法。不管怎样,祝你好运找到如何完成拼图的最后一部分。

于 2013-10-18T13:21:05.353 回答