1

我在 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]?感谢帮助

4

2 回答 2

1

Grid是一个Panel。面板负责布局,仅此而已。如果你想更新背景 - 将每一行的内容放入Border,然后找到合适Border的(我在这里写了代码,没有测试它,但应该可以工作):

int desiredRowId = 2;
foreach(var child in grdMoney.Children.OfType<Border>())
{
    if (Grid.GetRow(child) == desiredRowId)
    { 
        child.Background = new SolidColorBrush(Colors.Red);
    }
}
于 2013-01-12T10:01:32.057 回答
0

我可能会使用DataTriger在 xaml 中执行此操作

在数据触发器中,您可以检查您的状况并应用适当的背景

于 2013-01-11T09:49:24.820 回答