Domanda

Ho una visione in cui ho un oggetto legato ad un albero. L'oggetto ha una serie di collezioni (di diversi tipi) quindi sto utilizzando modelli hiearchical con un CompositeCollection per visualizzarli nella vista ad albero.

Ho poi ottenuto una casella di testo che è destinata a selectedItem del controllo TreeView. Qui sto serializzazione del selectedItem a XML e la visualizzazione nella casella di testo per la modifica.

Tutto bene finora. Tuttavia, il grande problema che ho è che non posso usare a 2 vie associazione dati con la proprietà SelectedItem del controllo TreeView in quanto è di sola lettura.

Come faccio a modo pulito mantenere le modifiche TextBox in sincronia con il mio oggetto che è destinata a TreeView?

È stato utile?

Soluzione

Non credo che avete bisogno di fare due vie associazione dati sul SelectedItem in sé, si dovrebbe esporre una proprietà nella classe del vostro oggetto associato che restituisce la stringa serializzata e sulla modifica set l'oggetto in modo appropriato. Questo dovrebbe essere più facile che fare con l'oggetto nel suo complesso.

Altri suggerimenti

Il flusso XML deve essere rappresentato come una proprietà sul proprio nodo SelectedItem, e la vostra TextBox deve essere legato a questo, in qualche modo. Il SelectedItem è di sola lettura, ma l'oggetto si riferisce non è. Se a due vie si legano su tale proprietà, si dovrebbe essere in grado di influenzare in modo corretto le modifiche. Ciò dovrebbe essere fatto nelle DataTemplates e HiearchicalDataTemplates che si sta utilizzando, in quanto essi sono tenuti a rappresentazione sottostante dei dati dei nodi che stanno rappresentando con la TreeView.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top