Xaml - 如何从网格中获取精确的行(并更改背景)

时间:2013-01-11 09:45:16

标签: c# windows-phone-7 xaml grid row

我在xaml中定义了这样的网格:

<Grid Name="grdMoney" HorizontalAlignment="Center" Margin="20">
     <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="*" />
     </Grid.ColumnDefinitions>
     <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
     </Grid.RowDefinitions>
     ... Content, many Textboxes in each row
</Grid>

现在我只想通过更改该行中的背景来突出显示某行。但是我无法找到如何在代码中从网格中获得精确的行。我觉得这很容易,但是谷歌搜索最后15分钟却无法找到它。也许有grdMoney.Childer[number_of_row]的东西?谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

GridPanel。面板负责布局,仅此而已。 如果你想更新背景 - 将每行的内容放到Border,并找到相应的Border(我在这里编写代码,但没有测试它,但是应该有效):

int desiredRowId = 2;
foreach(var child in grdMoney.Children.OfType<Border>())
{
    if (Grid.GetRow(child) == desiredRowId)
    { 
        child.Background = new SolidColorBrush(Colors.Red);
    }
}

答案 1 :(得分:0)

我可能会使用 DataTriger

在xaml中执行此操作

在数据分析中,您可以检查您的情况并应用适当的背景