Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#-通过gridview selecteditem查找并修改图像控件_C#_Gridview_Uwp - Fatal编程技术网

c#-通过gridview selecteditem查找并修改图像控件

c#-通过gridview selecteditem查找并修改图像控件,c#,gridview,uwp,C#,Gridview,Uwp,在uwp中引发单击事件时,我需要更改gridview数据模板中图像控件的源。当我点击一个汽车图像时,这个图像需要修改并显示品牌标识。我成功地实现了这一目标: <controls:AdaptiveGridView x:Name="AdaptiveGridViewControl" animations:ReorderGridAnimation.Duration="350"

在uwp中引发单击事件时,我需要更改gridview数据模板中图像控件的源。当我点击一个汽车图像时,这个图像需要修改并显示品牌标识。我成功地实现了这一目标:

   <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;
}
希望这有帮助