我有这段代码(大型XAML文件的一部分):
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Rectangle Name="R1"/>
<Rectangle Name="R2" Tapped="RTEventHandler"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
当我点击R2时,我想更改R1矩形的backgorund,所以我需要从CodeBehind到达R1。我试图给x:名称的元素,但它没有帮助。
帮助
答案 0 :(得分:1)
我建议您绑定Rectangle的颜色,而不是尝试查找UI元素。 将您的xaml更改为
<DataTemplate>
<Grid>
<Rectangle Name="R1" Fill="{Binding FirstBackground}"/>
<Rectangle Name="R2" Tapped="RTEventHandler"/>
</Grid>
</DataTemplate>
tap事件将获取tapped元素的DataContext并设置FirstBackground
var viewModel = (sender as Rectangle).DataContext as MyViewModel;
viewModel.FirstBackground = new SolidColorBrush(Colors.Green);
确保您的MyViewModel类实现了INotifyPropertyChanged
答案 1 :(得分:0)