我有一个包含12个网格的XAML文件,每个网格包含一组相同的标签。它们被命名为grid1,mainLabel1,otherLabel1,countLabel1; grid2,mainLabel2等。我有一个List(T)集合(List(Projects))中的项目集合。列表中的每个元素将包含要保存在标签中的文本。我还需要计算列表中有多少元素,并隐藏超出该范围的所有网格(即,如果列表中有8个项目,隐藏网格9-12)。在多个网格上的多个控件上设置属性
我已经在Powershell中完成了这项工作,但我需要将它放到C#/ XAML文件中,以便为我的团队进行面向未来的验证。在PS中,我可以使用Get-Variable和-ValueOnly为控件的属性赋值,但我似乎无法找到在C#中执行此操作的方法。无可否认,我对C#很陌生,因此任何指导都将不胜感激。
我想过使用for或foreach循环,因为然后我可以在每次迭代中使用i,但使用控件名称似乎有问题。
这是一个运行Powershell的例子。在完成这个设置和其他几行后,我可以使用$ f.Add_Click或$ b.Add_Click并设置一个脚本块。如何在C#中做到这一点?
foreach ($i in $script:projects)
{
$n = $script:projects.IndexOf($i) + 1
$m = $script:projects.IndexOf($i)
# get new variables based on existing control names
$a = Get-Variable -Name "WPFprojBG$n" -ValueOnly
$b = Get-Variable -Name "WPFgrid$n" -ValueOnly
$c = Get-Variable -Name "WPFclientLabel$n" -ValueOnly
$d = Get-Variable -Name "WPFprojLabel$n" -ValueOnly
$e = Get-Variable -Name "WPFcount$n" -ValueOnly
$f = Get-Variable -Name "WPFButton$n" -ValueOnly
}
嗯......也许我没有很好地解释视觉效果。网格设置是这样的:http://i.imgur.com/KcvbDh8.png每个绿色区域是一个网格,每个红色块和“1”是文本框,它们是它下面的网格的一部分。左上角是grid1,label1,otherLabel1,count1。在它的右边是grid2,label2等。我不确定这里的ListView教程真的有帮助...或者我想念你想告诉我什么? –
好吧,结果记住它看起来像你只是希望ListView水平流过窗口项目。您的每个绿色区域都会代表您的列表中的一个项目,并且您会将其内容控件放置在项目模板中,如“带有ItemTemplate的ListView”一节中的教程。有关如何制作水平列表视图样式的示例,请参见[此SO链接](http://stackoverflow.com/a/11345736/3407841)。结合这两者并改变项目模板以匹配你自己的布局和瞧。 – leetibbett
这对我来说将是漫长的道路,但它绝对是正确的。谢谢(你的)信息! –