C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – WPF在运行时更改列宽大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含网格的 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;

大佬总结

以上是大佬教程为你收集整理的c# – WPF在运行时更改列宽全部内容,希望文章能够帮你解决c# – WPF在运行时更改列宽所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: