none
WPF und Richtextbox RRS feed

  • Frage

  • Hallo,
    ich versuche gerade mit einer Richtextbox ein bisschen mehr Text zu verarbeiten, der dann in der Datenbank gespeichert werden soll.

    Die Richtexbox wandle ich mit dem Xaml-Writer in nen String um, der in der DB gespeichert wird. Das klappt auch ganz gut und sieht so aus:
    string notice_intern = XamlWriter.Save(rtxtOfferNoticeIntern);

    Aber wie krieg ich jetzt den String nach ner Comboboxauswahl wieder in meine Richtextbox???

    Mein momentaner Ansatz sieht so aus, aber irgendeine Kleinigkeit fehlt mir da wohl wieder:
    RichTextBox richtextbox;
    using (var reader = XmlReader.Create(new StringReader(offernew.Notice_extern)))
    {
        richtextbox = (RichTextBox)XamlReader.Load(reader);
    }
    this.rtxtOfferNoticeExtern = richtextbox;
    
    Kann mir irgendjemand helfen?
    Danke
    Montag, 21. September 2009 14:21

Antworten

  • Hi Armin,
    wieso versteht ein Nutzer einer modernen komplexen Sprache keine "Beginner"-Sprache (BASIC) :-) ?

    In VB.NET ist CType der Typcasting-Operator (mit Probieren).

    using System.Windows;
    using System.Windows.Documents;
    using System.Windows.Markup;
    
    namespace WpfApplication1
    {
      /// <summary>
      /// Interaction logic for Window1.xaml
      /// </summary>
      public partial class Window14_RTF : Window
      {
        public Window14_RTF()
        {
          InitializeComponent();
        }
    
        string str = "";
    
        private void Load_Click(object sender, RoutedEventArgs e)
        {
          this.rtb.Document = (FlowDocument)XamlReader.Parse(str);
        }
    
        private void Save_Click(object sender, RoutedEventArgs e)
        {
          str = XamlWriter.Save(this.rtb.Document);
        }
    
      }
    }
     Wieso kannst du mit dem serialisierten Inhalt der RichTextBox nichts anfangen?

    --
    Peter
    • Als Antwort vorgeschlagen Peter Fleischer Dienstag, 22. September 2009 09:05
    • Als Antwort markiert Braziliano Freitag, 25. September 2009 08:29
    Dienstag, 22. September 2009 06:50

Alle Antworten

  • Du solltest das Dokument serialisieren, z.B. so:

    WPF-Teil:

    <Window x:Class="Window14_RTF"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window14_RTF" Height="300" Width="300">
      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="30"/>
          <RowDefinition/>
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Orientation="Horizontal">
          <Button Click="Load_Click" Content="Laden" Margin="5"/>
          <Button Click="Save_Click"  Content="Speichern" Margin="5"/>
        </StackPanel>
        <RichTextBox Grid.Row="1" x:Name="rtb" ScrollViewer.CanContentScroll="True" />
      </Grid>
    </Window>
    Dazu der Codeteil:

    Imports System.Windows.Markup
    
    Partial Public Class Window14_RTF
    
      Dim str As String
    
      Private Sub Load_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        rtb.Document = CType(XamlReader.Parse(str), Documents.FlowDocument)
      End Sub
    
      Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        str = XamlWriter.Save(rtb.Document)
      End Sub
    
    End Class
    --
    Peter
    Montag, 21. September 2009 18:33
  • Hallo Peter,

    vielen Dank, denke der Ansatz schon die Richtung, in die ich will.
    Nur eine Frage hab ich.
    Da ich in C# programmiere, komm ich grad mit dem CType irgendwie durcheinander.
    CType entspricht doch dann bei mir in C# RichTextBox?
    Aber dann kann ich mit dem Documents.FlowDocument nichts mehr anfangen.

    Gruß
    Armin
    Dienstag, 22. September 2009 05:54
  • Hi Armin,
    wieso versteht ein Nutzer einer modernen komplexen Sprache keine "Beginner"-Sprache (BASIC) :-) ?

    In VB.NET ist CType der Typcasting-Operator (mit Probieren).

    using System.Windows;
    using System.Windows.Documents;
    using System.Windows.Markup;
    
    namespace WpfApplication1
    {
      /// <summary>
      /// Interaction logic for Window1.xaml
      /// </summary>
      public partial class Window14_RTF : Window
      {
        public Window14_RTF()
        {
          InitializeComponent();
        }
    
        string str = "";
    
        private void Load_Click(object sender, RoutedEventArgs e)
        {
          this.rtb.Document = (FlowDocument)XamlReader.Parse(str);
        }
    
        private void Save_Click(object sender, RoutedEventArgs e)
        {
          str = XamlWriter.Save(this.rtb.Document);
        }
    
      }
    }
     Wieso kannst du mit dem serialisierten Inhalt der RichTextBox nichts anfangen?

    --
    Peter
    • Als Antwort vorgeschlagen Peter Fleischer Dienstag, 22. September 2009 09:05
    • Als Antwort markiert Braziliano Freitag, 25. September 2009 08:29
    Dienstag, 22. September 2009 06:50
  • Bin noch nicht so lange beim Programmieren, danke für deine Ausführungen.
    Jetzt passt alles.
    Freitag, 25. September 2009 08:29