2012-01-16 14 views
5

समृद्ध टेक्स्टबॉक्स की दस्तावेज़ संपत्ति के साथ डेटा को गतिशील रूप से कैसे बाध्य करें। मैं सी # के साथ डब्ल्यूपीएफ में एमवीवीएम का उपयोग कर रहा हूँ?एमवीवीएम पैटर्न के साथ समृद्ध टेक्स्ट बॉक्स के साथ डेटा कैसे बाध्य करें?

संपादित करें:

मैं "codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx" में इस उदाहरण के साथ की कोशिश की, लेकिन मैं समझ नहीं पा रहा हूं कि उस उदाहरण में क्या हो रहा है। मैं डब्ल्यूपीएफ और एमवीवीएम के लिए बहुत नया हूं।

यह लाइन

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(); } 

त्रुटि की तरह है में त्रुटि फेंक रहा है "रूट स्तर पर डाटा अवैध स्थिति 1. है। लाइन 1," मैं की तरह "नमूना पाठ" मूल्य दे रहा हूँ

मैंने पाया XAML पाठ

<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

आप अभी तक कुछ भी करने की कोशिश की है? –

+0

हाँ .. मैंने इस उदाहरण के साथ "http://www.codeproject.com/KB/WPF/BindableWPFRichTextBox.aspx" में कोशिश की लेकिन मैं समझ नहीं पा रहा हूं कि उस उदाहरण में क्या हो रहा है। मैं बहुत WPF और MVVM की – Tanya

+3

संभव डुप्लिकेट [RichTextBox बाध्यकारी WPF] (http://stackoverflow.com/questions/343468/richtextbox-wpf-binding) – Ray

उत्तर

1

मुझे आशा है कि मैं सही ढंग से अपने प्रश्न की व्याख्या की तरह होना चाहिए: मैं तुम्हें एक सामान्य स्ट्रिंग के लिए बाध्य कर रहे हैं मान (नमूना पाठ) RichTextBox के साथ आप कोडप्रोजेक्ट से मिला है। यह काम नहीं करेगा, 'जिस दस्तावेज़ को आप बांधना चाहते हैं वह फ़्लो डॉक्यूमेंट है और इसमें एक विशिष्ट प्रारूप है। यदि आप स्ट्रिंग असाइन करते हैं तो आपको स्ट्रिंग

से FlowDocument बनाने का प्रयास करने पर त्रुटि "डेटा अमान्य" हो जाएगी, XAML के माध्यम से या CodeBehind के माध्यम से फ़्लो डॉक्यूमेंट बनाने का तरीका यहां दिया गया है। http://msdn.microsoft.com/en-us/library/aa970909.aspx

तब कनवर्टर खेलने में आता है: स्ट्रिंग प्रतिनिधित्व के बाहर यह एक वास्तविक FlowDocument पैदा करता है।

तो, अगर आप इस तरह वीएम में एक स्ट्रिंग के लिए अपने नमूना पाठ बाँध प्रदर्शित करना चाहते हैं:

<FlowDocument PagePadding=\"5,0,5,0\" AllowDrop=\"True\" " 
       + "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">" 
       + "<Paragraph>Your sample text</Paragraph></FlowDocument>" 
संबंधित मुद्दे