<分区>
我有一个基本的 WPF UserControl,它处理派生的 UserControl 的一些常见功能。在任何派生的 UserControl 的代码隐藏中,我调用一个事件
private void SomeClick(object sender, RoutedEventArgs e) {
HandleClick(sender);
MyDataGrid.Items.Refresh();
}
在我的基本 UserControl 中我这样做
public class BaseUserControl : UserControl {
protected void HandleClick(object sender) {
var vm = (BaseViewModel<Part>)DataContext;
...
}
}
这会抛出一个 InvalidCastException 自 DataContext
类型为 BaseViewModel
但是像 BaseViewModel<Wire>
这样的派生类型或 BaseViewModel<Connector>
.
我该如何转换它?