mam taki problem - mam aplikację stworzoną w C# z użyciem m.in framework caliburn micro i mam wyswietlaną jakąś listę danych (rzecz dotyczy kontrolek Listview oraz ListBox) i teraz chcę aby po kliknięciu w OBOJĘTNIE KTÓRYM MIEJSCU jakiegoś wiersza z tej listy została wyzwolona akcja rozpoznająca który wiersz został klikniety. Z góry informuje że nie może tu być zastosowane caliburnowe "Item" i "ActiveItem", bo akurat aplikacja jest tak skonstruowana że w tym miejscu muszę się bez tego obejść.
Mam przykładowo taki kod:
Code: Zaznacz cały
<ListView Grid.Column="1" Grid.Row="1" wpf:GridViewColumnResize.Enabled="True" BorderBrush="Transparent" x:Name="TransfersView"
Background="#1F1F1F" Foreground="White" HorizontalContentAlignment="Stretch" >
<ListView.View>
<GridView>
<GridViewColumn Header=" " DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Converter={StaticResource IndexConverter}}">
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsMarkedForExport}" >
</CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="140">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Target.Id, Converter={StaticResource IdToContractorNameConverter}}" Padding="0,0,70,0">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<cal:ActionMessage MethodName="ActivateRow" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBlock.ToolTip>
<TextBlock>
<Run Text="{Binding Path=Target.Id, Converter={StaticResource IdToContractorDataConverter}}" />
</TextBlock>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Próbowałem wstawić inne trigery w inne miejsca tak aby objął on cały wiersz a nie tylko jedną kolumnę, ale albo kompletnie nie reagował on na kliknięcie albo aplikacja wysypywała się przy próbie wyświetlenia listy z danymi. Straciłem na to naprawde wiele godzin. Podstawowym problemem jest tu chyba fakt że aplikacja jest zrobiona na MVVM caliburn micro, na zwykłym WPF-e, może byłoby łatwiej.
Przeglądałem sporo anglojęzycznych stron, ale nigdzie nie znalazłem DZIAŁAJĄCEGO rozwiązania.
Podejrzewam, że rozwiązanie jest banalne TYLKO TRZEBA WIEDZIEĆ JAK.
Z góry dzięki za wszelką pomoc.