c#-通过gridview selecteditem查找并修改图像控件
在uwp中引发单击事件时,我需要更改gridview数据模板中图像控件的源。当我点击一个汽车图像时,这个图像需要修改并显示品牌标识。我成功地实现了这一目标:c#-通过gridview selecteditem查找并修改图像控件,c#,gridview,uwp,C#,Gridview,Uwp,在uwp中引发单击事件时,我需要更改gridview数据模板中图像控件的源。当我点击一个汽车图像时,这个图像需要修改并显示品牌标识。我成功地实现了这一目标: <controls:AdaptiveGridView x:Name="AdaptiveGridViewControl" animations:ReorderGridAnimation.Duration="350"
<controls:AdaptiveGridView x:Name="AdaptiveGridViewControl"
animations:ReorderGridAnimation.Duration="350"
Margin="0,12,0,0"
ItemHeight="200"
DesiredWidth="200"
SelectionMode="Single"
IsItemClickEnabled="True"
ItemClick="GridView_ItemClick"
>
<controls:AdaptiveGridView.ItemTemplate>
<DataTemplate x:DataType="data:MyData">
<StackPanel Orientation="Horizontal">
<controls:ImageEx x:Name="ImageExControl"
MaxHeight="200"
IsCacheEnabled="True"
Source="{x:Bind carsPictures}"
Stretch="Fill"
PlaceholderSource="/Assets/placeholder_cover.jpg"
PlaceholderStretch="Uniform"/>
</StackPanel>
</DataTemplate>
</controls:AdaptiveGridView.ItemTemplate>
</controls:AdaptiveGridView>
多亏了那个帖子:,
我可以使用FindChildControl(DependencyObject控件,string ctrlName)方法
在代码隐藏中:
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
var newData = (MyData)e.ClickedItem;
ImageEx ex = FindChildControl<ImageEx>(this, "ImageExControl") as ImageEx;
ex.Source = newData.brandLogo;
}
private void GridView\u ItemClick(对象发送者,ItemClickEventArgs e)
{
var newData=(MyData)e.ClickedItem;
ImageEx ex=FindChildControl(本“ImageExControl”)作为ImageEx;
例如,Source=newData.brandLogo;
}
问题是此gridview包含30个汽车图片,当引发单击事件时,仅修改第一个图像控件。我不知道如何使用AdaptiveGridView.SelectedItem更改单击的图像控件。您需要获取已单击的
GridViewItem
,以便更改单击项目的图像。将您的项目单击事件更改为如下内容
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
GridViewItem item = myGridView.ContainerFromItem(e.ClickedItem) as GridViewItem;
MyData newData = (MyData)e.ClickedItem;
ImageEx ex = FindChildControl<ImageEx>(item, "ImageExControl") as ImageEx;
ex.Source = newData.brandLogo;
}
private void GridView\u ItemClick(对象发送者,ItemClickEventArgs e)
{
GridViewItem=myGridView.ContainerFromItem(例如ClickedItem)作为GridViewItem;
MyData newData=(MyData)e.ClickedItem;
ImageEx ex=作为ImageEx的FindChildControl(项目“ImageExControl”);
例如,Source=newData.brandLogo;
}
希望这有帮助