0

我有这个代码(一个大 XAML 文件的一部分):

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Rectangle Name="R1"/>
                <Rectangle Name="R2" Tapped="RTEventHandler"/>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我想在点击 R2 时更改 R1 矩形的背景,所以我需要从 CodeBehind 到达 R1。我试图为元素提供 x:Name 但它没有帮助。

谢谢帮助

4

2 回答 2

1

我建议您绑定 Rectangle 的颜色,而不是尝试查找 UI 元素。将您的 xaml 更改为

<DataTemplate>
    <Grid>
        <Rectangle Name="R1" Fill="{Binding FirstBackground}"/>
        <Rectangle Name="R2" Tapped="RTEventHandler"/>
    </Grid>
</DataTemplate>

然后,点击事件将获取被点击元素的 DataContext 并设置 FirstBackground

var viewModel = (sender as Rectangle).DataContext as MyViewModel;
viewModel.FirstBackground = new SolidColorBrush(Colors.Green);

确保您的 MyViewModel 类实现 INotifyPropertyChanged

于 2013-07-23T19:22:16.513 回答
0

如何访问 XAML DataTemplate 中的命名控件

于 2013-07-23T10:54:58.893 回答