0

私のページには次のリストボックスがあります。

<ListBox x:Name="lstData" Tap="lstData_Tap" ItemsSource="{Binding 
                             Source={StaticResource favoriteAddressCollection}, 
                             Path=DataCollection}" Margin="22">
            <ListBox.ItemTemplate >
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Image Source="/Images/Search/favorite_red.png" Margin="12" />
                        <TextBlock Text="{Binding Path=Address}" VerticalAlignment="Center" Width="300" />
                        <Button BorderThickness="0"  Width="60" Height="60" HorizontalAlignment="Right"
                                Tap="imgDelete_Tap">
                            <Button.Background>
                                <ImageBrush ImageSource="/Images/Search/unfavorite.png"></ImageBrush>
                            </Button.Background>
                        </Button>
                        <!--<Image x:Name="imgDelete" Source="/Images/Search/unfavorite.png" Width="40" Margin="12" HorizontalAlignment="Right"
                               Tap="imgDelete_Tap" />-->
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

その画像をクリックした後、アイテムを削除したいと思います。SelectedItemまたはSelectedIndexを設定していないので、他の方法でアイテムを削除するにはどうすればよいですか?画像をクリックした行を確認するにはどうすればよいですか?

4

2 に答える 2

1

まず、ボタンでTapイベントを使用することはお勧めしません。この目的のためにClickイベントがあります。次に、質問に関連します。イベントハンドラー(TapまたはClickの場合もありますが、関係ありません)で、次のようなコードを記述します。

Button btn = sender as Button;
YourViewModelDataType itemContext = btn.DataContext as YourViewModelDataType;

そして、itemContext変数には、お気に入りコレクションから削除する必要があるアイテムへの参照があります。または、それを使ってやりたいことを何でもします。

于 2013-02-18T11:54:30.633 に答える
0

そのボタンコマンドの引数/パラメータとしてSelectedItemをバインドする必要があります。次に、そのボタンコマンドをビューモデルのメソッドにバインドできます。このメソッドでは、選択したアイテムが引数として自動的に渡されます。

于 2013-02-18T10:47:02.193 に答える