Я сделал вот такой простой ListView и забиндил данные в него:
<ListView Grid.Column="0" DockPanel.Dock="Left" ItemsSource="{Binding BindData}" SelectionMode="Single">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding DataContext.AddTitlesInTable, RelativeSource={RelativeSource FindAncestor, AncestorType=ListBox}}" CommandParameter="{Binding}" MouseAction="LeftClick" />
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumn.Header>
<TextBlock Text="{x:Static res:Resource.DataHeader}" />
</GridViewColumn.Header>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
Я бы хотел, чтобы команда AddTitlesInTable срабатывала по нажатию на всей строке ListView. Но сейчас она работает только если нажать на текст, то есть вложенный элемент TextBlock. Как можно реализовать подобное?
Собственно я использовал взаимодействие команд и событий, отлавливаю событие SelectionChanged и перенаправляю его и выделенный элемент в свою команду:
<ListView Name="ListView1" Grid.Column="1" Grid.Row="2" ItemsSource="{Binding DeteriorationSystemPartsGroupsModelData}" Margin="10,10,10,10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction
Command="{Binding AddTitlesInTable}"
CommandParameter="{Binding ElementName=ListView1, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.View>
... etc
Проверено, команда получает выделенную строку, и нажимать можно в любом месте, команда отрабатывает на 100%
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть такая вот модель для запроса на сервер: