①:給該控件起個奇葩點的名字(目的是不要與別的控件重名)
②:叫醒你的控件,對,它就睡在Application.Current.Windows里!
注:該方法殺傷力巨大,有悖MVVM設計初衷,應盡量避開
foreach (Window win in Application.Current.Windows)
{
dataGrid = win.FindName("_vwMarkDatagrid") as DataGrid;
if (dataGrid != null && selectMark.MarkID != currentMarkID)
{
isFromMap = true;
currentMarkID = selectMark.MarkID;
dataGrid.SelectedItem = selectMark;
dataGrid.ScrollIntoView(selectMark);
break;
}
}
{
dataGrid = win.FindName("_vwMarkDatagrid") as DataGrid;
if (dataGrid != null && selectMark.MarkID != currentMarkID)
{
isFromMap = true;
currentMarkID = selectMark.MarkID;
dataGrid.SelectedItem = selectMark;
dataGrid.ScrollIntoView(selectMark);
break;
}
}