gpt4 book ai didi

c# - WPF 在运行时更改列宽

转载 作者:太空狗 更新时间:2023-10-30 00:32:03 26 4
gpt4 key购买 nike

我有一个包含网格的 WPF 应用程序。网格被分成 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>

并在代码隐藏文件中选择数据网格事件范围:

GridLength g2 = new GridLength(2, GridUnitType.Star);
thirdColumn.Width = g2;

关于c# - WPF 在运行时更改列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com