我正在尝试使用 Code-behind-FREE XAML-code 来调整GridViewColumn / column1
每次Button1
按下时根据新带来的数据调整大小(Button1 应该同时带来新数据和调整column1
ListView 的大小,不写更新数据的代码在这里)。
执行时没有出现错误,但大小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
}
}