Hola onzulin,
Depende de como hayas implementado tu capa de datos y donde los guardas. Principalmente, hay dos maneras:
- Tener un único objeto que contiene los datos y que se puede acceder desde cualquier sitio en tu código. (Usando el patrón Singleton)
- Pasar los datos a través de los parámetros
Para la segunda opción tendrías que preparar los datos que quieres que estén disponibles en el UserControl de la busqueda en la función
OnSearchActivated en tu App.xaml.cs. Lo que yo suelo hacer es definir una clase simple para los parámetros de la navegación:
public class NavigationParameters : Dictionary<String, Object> { }
Es solo por comodidad, realmente podrías usar el Dictionary directamente.
Entonces, en OnSearchActivated podrías añadir los datos a los parámetros, y pasarlos al UserControl:
NavigationParameters p = new NavigationParameters();
// la consulta de la busqueda
p["searchquery"] = args.QueryText;
// los datos sobre los que quieres ejecutar la consulta
p["data"] = _misDatos;
[...]
(Window.Current.Content as Frame).Navigate(typeof(SearchUserControl), p);
Así podrías acceder a esa inforfmación en el OnNavigatedTo del SearchUserControl:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
NavigationParameters p = e.Parameter as NavigationParameters;
if (p.Keys.Contains("searchquery"))
{
// hacer algo con p["searchquery"]
}
if (p.Keys.Contains("data"))
{
// hacer algo con p["data"]
}
}
Espero que sea lo que necesitabas saber.
Un saludo
Helge Mahrt - Microsoft Developer Support Engineer - If my reply answers your question, please mark this post as answered.