Я так понимаю, раз Метод1 у вас во viewmodel, то в нем бизнес-логика (а не логика представления). Если так, то советую провернуть это все через Command:
1) в родительской viewmodel (та, которая список) делаете команду с одним параметром (в примере: DoStrangeThingCommand);
2) с помощью EventTrigger делаете так, чтобы по событию нажатия л.к.м. на текстблоке дергалась эта команда;
3) в качестве параметра команды передаем текущую привязку (т.е. выбранный элемент в списке);
4) в команде собственно дергаем Метод1
5) профит
<DataTemplate ... >
<TextBlock>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction
Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}},
Path=DataContext.DoStrangeThingCommand}"
CommandParameter="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBlock>
</DataTemplate>