0

我正在尝试使用 Code-behind-FREE XAML-code 来调整GridViewColumn / column1每次Button1按下时根据新带来的数据调整大小(Button1 应该同时带来新数据和调整column1ListView 的大小,不写更新数据的代码在这里)。

执行时没有出现错误,但大小column1不会改变,即使我尝试发送转储值而不是auto,比如100,看看它是否改变了它的大小,这意味着我没有达到正确的值!

如何在 Setter 中达到 column1 的宽度值?这种方法最终会起作用还是需要另一种方法?

我已经编写了一个功能齐全的代码隐藏,但现在由于 MVVM 原因,我必须做模拟代码隐藏,为了比较和参考,你会在 XAML 代码之后找到它!

提前致谢!

XAML 代码

     <ListView.View>
            <GridView x:Name="dataGridView1">     
                <GridView.Columns >
                    <GridViewColumn x:Name="column1" >
                        <ContentControl>
                            <Style>
                                <Style.Triggers> 
                                   <!--the resize will happen here by triggering using the button-->
                                    <DataTrigger Binding="{Binding ElementName=Button1, Path=IsPressed}" Value="True"> 
                                        <Setter Property="GridViewColumn.Width" Value="auto" /> 
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding ElementName=Button1, Path=IsPressed}" Value="False">
                                        <Setter Property="GridViewColumn.Width" Value="auto" />
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>                        
                        </ContentControl>

Code-behind-version(工作正常,但必须使用 code-behind-FREE 版本!)

private void Button1_Click(object sender, RoutedEventArgs e)
 {
foreach (GridViewColumn c in dataGridView1.Columns)
{
    c.Width = 0; // Breite = 0
    c.Width = double.NaN; // Resize 
}
 }
4

0 回答 0