Ho una schermata con alcuni dati. All'interno dello schermo ho due controlli personalizzati (sul lato sinistro e destro).Utilizzo di Lightswitch, Silverlight e controlli personalizzati
Che cosa devo fare è la seguente:
Bind alcuni dati da un database per alcuni controlli nel primo controllo personalizzato. (compilare un elenco, casella combinata ecc., Non tanto il problema)
L'utente può quindi selezionare una voce nell'elenco, premere un pulsante -> il secondo CustomControl dovrebbe ora essere reso visibile; richiedere alcuni dati dal DB, in base alla selezione e creare e mostrare dinamicamente un grafico.
Quindi so come creare il grafico e creare i controlli. Ma come posso accedere ai dati dallo schermo tramite codice e accedere a un altro CustomControl dal primo CustomControl?
Edit:
cose che ho scoperto. Controllo
accesso dalla schermata
this.FindControl("yourControl");
Fai qualcosa con il controllo:
this.FindControl("yourControl").ControlAvailable += ((o,e) => { YourControlType myControl = e.Control as YourControlType; });
dati della schermata di accesso
IContentItem dataContext = this.DataContext as IContentItem; IScreenObject screen = dataContext.Screen; IScreenProperty prop = screen.Details.Properties["yourProperty"]; VisualCollection<yourProperty> items = prop.Value as VisualCollection<yourProperty>;
Visualizza nuova schermata
Application.Current.Details.Dispatcher.BeginInvoke(() => Application.Current.ShowGraphScreen(reportItem.BlockID));
Forse questo aiuterà qualcuno.
+1 solo per le piccole gemme su come accedere ai dati dello schermo. Poiché ora i controlli personalizzati devono essere in una libreria separata, aggiungere un riferimento al 'Application.common' generato dell'applicazione client, combinato con i tuoi esempi, è stato di grande aiuto. –
Questo link è utile? [Custom Control Binding] (http://social.msdn.microsoft.com/Forums/en/lsextensibility/thread/394d7968-5210-441a-bf29-3da7001af07d) –