在多个网格上的多个控件上设置属性

时间:2016-06-21 21:31:39

标签: c# wpf xaml powershell

我有一个包含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
}

1 个答案:

答案 0 :(得分:1)

使用WPF的想法是,当您显示集合时,将其绑定到支持集合的控件并覆盖其模板,以您希望的格式显示每个项目(在您的情况下为Project)。可以帮助您的一个控件是ListView。有关如何操作的教程,请参阅this tutorial