c# - DataGrid.ColumnWidth="*" not working in a ScrollViewer -
i have datagrid columnwidth="*" in scrollviewer horizontalscrollbarvisibility="auto". unfortunately combination doesn't seem work well. while datagrid spans on full window width columns super small (minwidth). if change horizontalscrollbarvisibility disabled works lose desired scrollviewer behavior.
minimal working example:
<window x:class="wpf_sandbox.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:wpf_sandbox" title="mainwindow" x:name="thiscontrol"> <scrollviewer horizontalscrollbarvisibility="auto"> <datagrid autogeneratecolumns="false" columnwidth="*"> <datagrid.columns> <datagridtextcolumn header="column 1" /> <datagridtextcolumn header="column 2" /> <datagridtextcolumn header="column 3" /> <datagridtextcolumn header="column 4" /> </datagrid.columns> </datagrid> </scrollviewer> </window> why happening , how can work around it?
the problem see because datagrid inside scrollviewer, has virtually infinite space expand,so can't calculate widths. work can bind datagrid width scrollviewer viewportwidth, this:
<datagrid autogeneratecolumns="false" columnwidth="*" width="{binding relativesource={relativesource findancestor, ancestortype={x:type scrollviewer}}, path=viewportwidth}">
Comments
Post a Comment