Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf ListView.GridViewColumn(*)宽度_Wpf_Listview_Gridview_Wpfdatagrid_Gridviewcolumn - Fatal编程技术网

Wpf ListView.GridViewColumn(*)宽度

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> <

我在WPF应用程序中使用
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激活代码隐藏中的绑定(请参阅)