c# – WPF在运行时更改列宽
发布时间:2020-12-16 01:58:52 所属栏目:百科 来源:网络整理
导读:我有一个包含网格的 WPF应用程序.网格被分成3列,第3个网格在加载时具有零宽度. 我在另外两列中有两个数据网格.当其中一个数据网格中的所选项目发生更改时,其他数据网格会更改其显示值,即主详细信息模板.一切正常. 数据网格中有一个值,如果选中,我希望第3列将
我有一个包含网格的
WPF应用程序.网格被分成3列,第3个网格在加载时具有零宽度.
我在另外两列中有两个数据网格.当其中一个数据网格中的所选项目发生更改时,其他数据网格会更改其显示值,即主详细信息模板.一切正常. 数据网格中有一个值,如果选中,我希望第3列将其宽度从零更改为2 *.我不知道怎么做? 编辑 我希望通过XAML实现这一目标.我一直在关注数据触发器&价值转换器.我在下面快速编写了一些代码进行测试.我已经读过将列设置为width = 0,依赖项属性设置优先级列表中可能更高.无论如何要做到这一点还是我需要使用代码? <Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="0"/> </Grid.ColumnDefinitions> <DataGrid Grid.Column="0" ItemsSource="{Binding OrderList}" SelectedItem="{Binding OrderSelected}" AutoGenerateColumns="True"> </DataGrid> <TextBox Grid.Column="1" Text="{Binding OrderSelected.Name}"> </TextBox> <Grid x:Name="columnHideSeek" Grid.Column="2" Background="Blue"> <Grid.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding OrderSelected.Name}" Value="Mark"> <Setter Property="Grid.Width" Value="10"/> </DataTrigger> </Style.Triggers> </Style> </Grid.Style> </Grid> </Grid> 解决方法
您的XAML文件应如下所示:
<Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition Name="thirdColumn" Width="0"/> </Grid.ColumnDefinitions> </Grid> 并在代码隐藏文件中选择了datagrid事件范围: GridLength g2 = new GridLength(2,GridUnitType.Star); thirdColumn.Width = g2; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |