我有一个代码,我需要能够在XAMl中访问不同数量的预建网格并使其可见或折叠
所有网格都被命名为grid1,grid2,grid3等。我可以在代码中通过随机数获取字符串名称,并获得我希望显示的网格名称。
我在网上搜索,人们建议使用反射方法,但我很难弄清楚我必须使用的语法。
祝你好运
答案 0 :(得分:2)
最直接的做法是为每个Name
声明一个Grid
值:
<Grid Name="Grid1">
...
</Grid>
...然后您可以从后面的代码中使用该名称访问它们:
Grid1.Visibility = Visibility.Hidden;
但是,这是WPF,通常不建议这样做。首选方法是在后面的代码中添加一些bool
属性或查看模型...:
public bool IsGrid1Visible { get; set; } // Implement INotifyPropertyChanged interface
...然后使用Grid1.Visibility
将这些直接绑定到BooleanToVisibilityConverter
属性:
<Grid Grid1.Visibility="{Binding IsGrid1Visible, Converter={StaticResource
BooleanToVisibilityConverter}}">
...
</Grid>
然后,您只需将Grid.Visibility
属性设置为IsGrid1Visible
或true
即可更改false
值。