0

私は LongListBoxItem のスタイルを持っています。各アイテムには画像と説明があります。そのため、タッチしたオブジェクト (pic または desc) に応じて、さまざまなイベントを呼び出す必要があります。私はMvvmlightを使用しています。

問題は、イベント ケースとイベント パラメータで完全に失われていることです。私はさまざまなイベントを試しています:


タップ イベント + PassEventArgsToCommand = GestureEventArgs を返します。そこからアイテム ID を抽出できるかどうかはわかりません

SelectedItem イベント + PassEventArgsToCommand = SelectionChangedEventArgs を返しますが、発生することはありません (イベントがリストボックス項目からではなく、その子の境界線から発生している可能性があります)。

タップ イベント + CommandParameter="{Binding SelectedItem, ElementName=ProductCategoriesListBox}" = 複数回使用するため、スタイルから Elementname を見つけることができません

SelectedItem イベント + CommandParameter="{Binding SelectedItem, ElementName=ProductCategoriesListBox}" = まあ、同じこと


多分私の仕事のためのより良いアプローチがありますか?

4

1 に答える 1

0

さて、この場合は TemplatedParent が resque になります (5 行目)。

    <interactivity:Interaction.Triggers>
        <interactivity:EventTrigger EventName="Tap">
            <command:EventToCommand 
                Command="{Binding Source={StaticResource ViewModelLocator}, Path=NavigationViewModel.OnTapItemCommand, Mode=OneWay}"
                CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext}"/>
        </interactivity:EventTrigger>
    </interactivity:Interaction.Triggers>

スタイルからリストボックス項目にアクセスできるようになりました。

于 2013-05-05T09:14:28.980 に答える