WPF ListView 随着列大小的调整而变宽,但不会缩小
在以下 .NET 3.5 XAML 中,如果将“Day”列的列宽拖得更宽,ListView 会很好地增长以解决此问题。 但是,如果您随后将列宽拖动得更窄,表格的大小将保持不变。
垂直方向也存在同样的问题。 如果您的某些列有自动换行,则表格会变高以处理此问题,但随后不会缩小。
这是真正愚蠢的部分。 如果删除 ListView.ItemsSource 部分,则 ListView 将按预期工作! 为什么这会影响它呢?
有任何想法吗?
<Window x:Class="TestWpfTables.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:p="clr-namespace:System;assembly=mscorlib"
Title="Window1" Height="300" Width="300">
<Grid>
<ListView HorizontalAlignment="Left">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Day}" Header="Day" />
</GridView>
</ListView.View>
<ListView.ItemsSource>
<s:ArrayList>
<p:DateTime>1990/1/1 12:22:02</p:DateTime>
<p:DateTime>1990/1/2 13:2:01</p:DateTime>
<p:DateTime>1990/1/5 2:1:6</p:DateTime>
</s:ArrayList>
</ListView.ItemsSource>
</ListView>
</Grid>
</Window>
In the following .NET 3.5 XAML, if you drag the column width of the 'Day' column wider, the ListView nicely grows to account for this. If you then drag the column width narrower, however, the table stays the same size as it was.
This same problem exists vertically, too. If some of your columns have word wrap, the table will get taller to handle this, but then not shrink back.
Here's the really goofy part. If you remove the ListView.ItemsSource section, then the ListView works as desired! Why would this affect it?
Any ideas?
<Window x:Class="TestWpfTables.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:p="clr-namespace:System;assembly=mscorlib"
Title="Window1" Height="300" Width="300">
<Grid>
<ListView HorizontalAlignment="Left">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Day}" Header="Day" />
</GridView>
</ListView.View>
<ListView.ItemsSource>
<s:ArrayList>
<p:DateTime>1990/1/1 12:22:02</p:DateTime>
<p:DateTime>1990/1/2 13:2:01</p:DateTime>
<p:DateTime>1990/1/5 2:1:6</p:DateTime>
</s:ArrayList>
</ListView.ItemsSource>
</ListView>
</Grid>
</Window>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
参考:codeplex 线程
ref: codeplex thread