I have a DataGrid with a column that contains a Link. A file gets opened on click
<DataGridHyperlinkColumn Binding="{Binding Path=Number}" >
<DataGridHyperlinkColumn.ElementStyle>
<Style>
<EventSetter Event="Hyperlink.Click" Handler="LinkClicked"/>
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
I use this method
public void LinkClicked(object sender, RoutedEventArgs e)
{
var vm = (BasePartViewModel<Part>) DataContext;
vm.OpenFile();
}
I would like to use this code in my Base ViewModel class.
But the problem is that this cast does not work
(BasePartViewModel<Part>) DataContext
because actually for every implementation that is different. For instance
(BasePartViewModel<Plug>) DataContext
and Plug
derives from Part
. How to make it work without implementing this method in every derived ViewModel?