Wpf ListView.GridViewColumn(*)宽度
我在WPF应用程序中使用Wpf ListView.GridViewColumn(*)宽度,wpf,listview,gridview,wpfdatagrid,gridviewcolumn,Wpf,Listview,Gridview,Wpfdatagrid,Gridviewcolumn,我在WPF应用程序中使用ListView控件而不是DataGrid。我想为我的ListView.GridViewColumn提供*宽度,但每当我为ListView.GridViewColumn提供*宽度时,它都会给我一个编译时错误。请建议我如何为ListView.GridViewColumn提供*宽度,以便当我最大化屏幕时,ListView.GridViewColumn可以自动填充额外空间 在此方面的任何帮助都将不胜感激。谢谢请尝试该解决方案: <ListView> <
ListView
控件而不是DataGrid
。我想为我的ListView.GridViewColumn
提供*
宽度,但每当我为ListView.GridViewColumn
提供*
宽度时,它都会给我一个编译时错误。请建议我如何为ListView.GridViewColumn
提供*
宽度,以便当我最大化屏幕时,ListView.GridViewColumn
可以自动填充额外空间
在此方面的任何帮助都将不胜感激。谢谢请尝试该解决方案:
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="column1" x:Name="col1"/>
<!--Column that shall resize: Width is set to the Actual Width of the helper field defined below-->
<GridViewColumn Header="column2"
Width="{Binding ElementName=helperField, Path=ActualWidth}"/>
</GridView>
</ListView.View>
Test Text
</ListView>
<!--This is the hidden helper Grid which does the resizing -->
<Grid Visibility="Hidden">
<Grid.ColumnDefinitions>
<!--Width is bound to width of the first GridViewColumn -->
<ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}"/>
<!--Width is set to "Fill"-->
<ColumnDefinition Width="*"/>
<!--Correction Width-->
<ColumnDefinition Width="10"/>
</Grid.ColumnDefinitions>
<!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
<Grid Grid.Column="1" x:Name="helperField"/>
</Grid>
测试文本
您还可以通过以下链接找到其他解决方案:
我在这里发布了我的方法,这有点不同(但发现它非常可靠,并且允许百分比宽度列),因为我尝试了上面的方法,并且发现我的devenv.exe处理最大,因为它不断尝试使用上面的动态绑定重新评估我的设计器视图。感谢Bilal Hashmi。但是在上面的xaml方法中,我应该在我的xaml页面中放置一行代码,这样它就会影响ListView列。使用IValueConverter,它在第一次加载屏幕时工作正常,但当我最大化屏幕或调整屏幕大小时,它不会相应地调整列宽。也许这可以帮助您将它放在显示ListView的xaml页面上的任何位置。假设在页面主网格的Row=0和Column=0处。这绝对是一个破解,但它足够简单,工作也足够好,我喜欢它。这是一个非常好的破解。我遇到的主要问题是ListViews滚动条处于自动状态,当滚动条出现和消失时,列宽需要自动更新。此外,我不喜欢“修正宽度”黑客。我的解决方案是将上述解决方案与ListView的ScrollViewer的“ViewportWidth”(与答案中的不同)相结合并绑定。注意:在ListView被布局后,通过挂接到LayoutUpdated激活代码隐藏中的绑定(请参阅)