0

私は次のようにアイテムをバインドしています:

    <ScrollViewer>
       <ItemsControl x:Name="UserList">
          <ItemsControl.ItemsPanel>
             <ItemsPanelTemplate>
                 <StackPanel Orientation="Horizontal" />
             </ItemsPanelTemplate>
          </ItemsControl.ItemsPanel>
          <ItemsControl.ItemTemplate>
             <DataTemplate>
                <Image Source="{Binding imageurl}" 
                       Tag="{Binding Path=id}" Width="164" Height="150" 
                       Margin="4" Stretch="Fill"></Image>

             </DataTemplate>
          </ItemsControl.ItemTemplate>
        </ItemsControl>
    </ScrollViewer>

Code.cs:


    List.Add(new StackImages { id = "1", Name="test",type="test",price ="testprice" ,imageurl = new Uri(this.BaseUri, @"Assets/acservice.png") });
    List.Add(new StackImages { id = "2", imageurl = new Uri(this.BaseUri, @"Assets/brakes.png") });
    List.Add(new StackImages { id = "3", imageurl = new Uri(this.BaseUri, @"Assets/carwash.png") });
    List.Add(new StackImages { id = "4", imageurl = new Uri(this.BaseUri, @"Assets/oilchange.png") });
    List.Add(new StackImages { id = "5", imageurl = new Uri(this.BaseUri, @"Assets/transmission.png") });
    UserList.ItemsSource= List;

タップしたときに特定のタグ値の特定の imageurl を取得する方法を教えてください。

4

2 に答える 2

0

あなたがやりたいことは、リストから項目を選択することです。選択をサポートするには、 を に置き換える必要がありItemsControlますListBox

<ListBox x:Name="UserList" SelectionMode="Single"
         SelectionChanged="UserList_SelectionChanged">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding imageurl}" 
                   Tag="{Binding Path=id}" Width="164" Height="150" 
                   Margin="4" Stretch="Fill"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

これで、イベントにハンドラーをアタッチして、またはプロパティSelectionChangedによって選択した項目にいつでもアクセスできます。SelectedItemSelectedIndex

private void UserList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var selectedImage = UserList.SelectedItem as StackImage;
    if (selectedImage != null)
    {
        var uri = selectedImage.imageurl;
    }
}
于 2013-08-01T11:33:12.320 に答える