2012-01-16 18 views
5

Cómo enlazar datos dinámicamente con la propiedad del documento del cuadro de texto enriquecido. Estoy usando MVVM en Wpf con C#?Cómo vincular datos con el cuadro de texto enriquecido con el patrón MVVM?

EDIT:

he intentado con este ejemplo en "codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx"; pero no puedo entender lo que está sucediendo en ese ejemplo. Soy muy nuevo en WPF y MVVM.

Está error de tiro en la línea

try { 
    var stream = new MemoryStream(Encoding.UTF8.GetBytes(GetDocumentXaml(richTextBox))); 
    var doc = (FlowDocument)XamlReader.Load(stream); 
    // Set the document 
    richTextBox.Document = doc; 
} 
catch (Exception) { richTextBox.Document = new FlowDocument(); } 

el error es como "Datos a nivel de la raíz no es válido. Línea 1, la posición 1." i estoy dando valor como "Texto de ejemplo"

He encontrado el texto xaml debe ser como

<FlowDocument PagePadding="5,0,5,0" AllowDrop="True" xmlns="schemas.microsoft.com/winfx/2006/xaml/… generated by app back-end</Paragraph> 
</FlowDocument>" But how to get this text? 
+3

Ha intentado algo? –

+0

yeap .. Intenté con este ejemplo en "http://www.codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx" pero no puedo entender lo que está sucediendo en ese ejemplo. Soy muy nuevo en WPF y MVVM – Tanya

+3

posible duplicado de [Richtextbox wpf binding] (http://stackoverflow.com/questions/343468/richtextbox-wpf-binding) – Ray

Respuesta

1

espero que interpreto bien su pregunta: Asumo va a enlazar a una cadena normal (texto de ejemplo) con el RichTextBox que obtuvo de codeproject. Esto no funcionará, porque el documento que debe enlazar es un FlowDocument y tiene un formato específico. Si asigna una cadena, obtendrá el error "datos no válidos" cuando intente crear un FlowDocument a partir de la cadena

Aquí hay un enlace sobre cómo crear un FlowDocument a través de XAML o mediante CodeBehind. http://msdn.microsoft.com/en-us/library/aa970909.aspx

A continuación, el convertidor entra en juego: Fuera de la representación de cadena crea un FlowDocument real.

lo tanto, si desea mostrar su muestra se unen a una cadena de texto en la máquina virtual como esto:

<FlowDocument PagePadding=\"5,0,5,0\" AllowDrop=\"True\" " 
       + "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">" 
       + "<Paragraph>Your sample text</Paragraph></FlowDocument>" 
Cuestiones relacionadas