来自我上一期提问的answer:
frame.Content
正如您可以看到UserControl1
更改,它可以有不同的DataType。因此,我不能只写UserControl1
。现在,我可以写什么来代替frame.Content
?
更新:已添加详细信息
DataContext
正在改变用户互动frame.Content
do_shortcode
的当前数据类型与往常一样,如果您需要澄清,请告诉我。
答案 0 :(得分:2)
如果您frame.Content
中唯一需要的是DataContext
,则可以尝试将其投放到FrameworkElement
,例如:
var frame = sender as Frame;
FrameworkElement content = frame.Content as FrameworkElement;
MainViewModel mvm = content.DataContext as MainViewModel;
如果frame.Content
并非总是FrameworkElement
,您可能需要先检查一下:
var frame = sender as Frame;
FrameworkElement content = frame.Content as FrameworkElement;
if (content != null) {
MainViewModel mvm = content.DataContext as MainViewModel;
// work with mvm...
}
else {
// Frame's content is something unexpected.
}