Если вы используете MVVM (Model-View-ViewModel) , вы можете достичь результата с помощью RelayCommand
.
В вашем файле ViewModel вам необходимо объявить свою команду:
public RelayCommand YourCommand { get; set; }
Затем вам нужно инициализировать его (например, в конструкторе модели представления):
YourCommand = new RelayCommand(YourMethodName);
Наконец, для XAML у меня есть этот пример ListBox, который вы можете адаптироваться к вашей конкретной c ситуации:
<ListBox
x:Name="Files"
ItemsSource="{Binding Items, Mode=TwoWay}"
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}">
<TextBlock.InputBindings>
<MouseBinding
Gesture="LeftDoubleClick"
Command="{Binding YourCommand }"/>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Как вы можете видеть в этом примере, у нас есть ListBox
, который связывает некоторые данные. Чтобы установить команду, мы получаем доступ к TextBlock
внутри ListBox.ItemTemplate
и добавляем команду для жеста LeftDoubleClick
.