Я создаю элемент управления списком ошибок, похожий на Visual Studio.Каждая ошибка представлена классом с тремя значениями: тип (enum: Error / Warning / Message), текст (строка) и время (DateTime).Класс также имеет еще два метода получения только для чтения: TimeString (возвращает время в формате ЧЧ: ММ) и Icon (возвращает путь к значку на основе типа).
У меня есть ItemsControl, связанный с ObservableCollection объектов через свойство ItemsSource.
Теперь я хочу реализовать контекстное меню для каждого элемента с двумя действиями: Копировать в буфер обмена и Удалить из списка.
Как получить доступ к исходному элементу из коллекциииз контекстного меню обработчик клика?
Вот мой код XAML:
<ItemsControl Name="itemsControl" ItemsSource="{Binding Items, ElementName=ConsoleWindow}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="Console.Items">
<Border Name="itemBorder" BorderBrush="LightGray" BorderThickness="0,0,0,1" SnapsToDevicePixels="True" Padding="4">
<Border.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy to clipboard" />
<MenuItem Header="Delete" />
</ContextMenu>
</Border.ContextMenu>
<DockPanel>
<Image Width="16" Height="16" Source="{Binding Icon}" Margin="0,3,4,0" VerticalAlignment="Top" DockPanel.Dock="Left" />
<TextBlock VerticalAlignment="Center" TextWrapping="Wrap" DockPanel.Dock="Left">
<Run Text="{Binding Text}" />
<TextBlock Foreground="Gray" FontSize="9">
<Run Text=" (" /><Run Text="{Binding TimeString, Mode=OneWay}" /><Run Text=") " />
</TextBlock>
</TextBlock>
</DockPanel>
Спасибо за любую помощь