有什么方法可以在xaml中动态添加网格列(例如使用trigger / datatrigger)? 这种情况是我想添加/删除网格列,具体取决于绑定到该网格的Visibility属性。
答案 0 :(得分:1)
可能不是您问题的确切解决方案,但您可以尝试这样的事情。
<Grid Name="theGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Name="columnToHide" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel Name="stackToHide" Grid.Column="0">
<Button>hello</Button>
</StackPanel>
<Button Grid.Column="1" Click="Button_Click">Bye</Button>
</Grid>
bool visible = true;
GridLength width;
GridLength height;
private void Button_Click(object sender, RoutedEventArgs e)
{
if (visible)
{
GridLength zero = new GridLength(0);
width = columnToHide.Width; //save original height and width
columnToHide.Width = zero; //make column invisible
visible = false;
}
else
{
columnToHide.Width = width; //restore original width
visible = true;
}
}
您还可以尝试将列内容放在容器中并更改其上的Visibility属性,尽管这不会导致网格内容的任何大小调整,并且您将留下以前用于该列的空间。