6

In una precedente domanda/risposta che ho imparato come associazione dati in Windows Phone fa TypeConversion per string-ImageSource utilizzando il TypeConverterAttribute - vedono https://stackoverflow.com/a/16753488/373321Come fa Windows RT di associazione dati fanno conversione del tipo senza TypeConverterAttribute

Sono ora guardando lo stesso problema nelle app di WindowsStore dove TypeConverterAttributedoesn't exist.

Se utilizzo l'associazione dati WinRT, il livello di associazione dati riesce comunque a eseguire correttamente la conversione. Il MSDN documentation dice:

questo comportamento si basa sulla conversione tipo sottostante che elabora la stringa come un URI, e chiama l'equivalente del costruttore BitmapImage (Uri).

Tuttavia, non riesco a vedere alcun metadato da nessuna parte sul modo in cui sa quale conversione eseguire.

Sto provando a creare la mia implementazione di associazione dei dati, quindi essere in grado di simulare ciò che WinRT sarebbe molto utile.

C'è un suggerimento metadata interrogabile da qualche parte che dice al data-Xaml di legare quale conversione applicare? Oppure questa conversione da string a ImageSource è in qualche modo integrata nel tempo di esecuzione, nascosto dallo strato CLR?

Se è nascosto, esiste un elenco di conversioni di tipi automatici noti in modo da poterli memorizzare nella mia implementazione di associazione dei dati?

risposta

0

Nelle app di Windows 8, questo viene generalmente gestito creando una classe che eredita da IValueConverter e viene quindi assegnata insieme alla particolare associazione di dati. Come indicato sul sito msdn:

"Creare un convertitore implementando l'interfaccia IValueConverter e implementando il metodo Convert. Tale metodo dovrebbe restituire un oggetto che è di lo stesso tipo come la proprietà di dipendenza target del binding o almeno un tipo che può essere implicitamente forzato o convertito nel tipo di destinazione. "

ecco il link alla piena doc: http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.data.binding.converter.aspx

vedere la sezione "Esempi" per ulteriori dettagli.

Per rispondere alla domanda, non esiste alcun suggerimento per i metadati, è sufficiente creare il convertitore e quindi assegnare il convertitore in modo esplicito al binding di dati personalizzato.

2

ho discusso questa domanda via Twitter con uno degli sviluppatori WinRT (Tim Heuer)

Una sintesi di base di questa conversazione era:

  • WinRT non ha nulla di simile TypeConverterAttribute
  • Un piccolo il numero di controlli WinRT ha un piccolo numero di conversioni interne che verranno applicate
  • Non ci sono informazioni disponibili su quali controlli e conversioni sono
+1

Ah, è un po 'deludente sentirlo.Stavo lavorando a un controllo degli utenti, e la mancanza di questo ha paralizzato il suo uso in XAML. – unrelativity

Problemi correlati