Laden...
C
cav3man myCSharp.de - Member
Softwareentwickler Mettmann Dabei seit 13.06.2007 5 Beiträge
Benutzerbeschreibung

Forenbeiträge von cav3man Ingesamt 5 Beiträge

06.01.2010 - 16:32 Uhr

Hi Kingstone,

interessante Sache =d vorallem weil ich momentan an der gleichen Problematik hänge da ich scheinbar was sehr ähnliches Programmieren will.

Mit deinem Ansatz bin cih schonmal gut vorran gekommen und werde mich damit jetzt noch weiter auseinandersetzen.

Hast du inzwischen schon weitergemacht... ist ja schon gute 8 Monate her seit dem letzten Post?

Grüße
cav3man

04.06.2009 - 10:11 Uhr

Hi

also athlet.Bodyratings ist vom Typ Bodyratings ^^ ist halt eine Entität vom Entity Data Model.

Hmm ObservableCollection ist ja schön und gut. Vielleicht hab ich das was falsch verstanden aber im Prinzip müsste ich ja dann eine ObservableCollection erstellen die ich mit der ListBox per DataBinding verbinde. Aber ich müsste ja immernoch jedes neue Object was ich der Datenbank hinzufüge manuell in die ObservableCollection schreiben... oder hab ich was falsch verstanden das man die ObservableCollection direkt mit der Entität verbinden kann.
Ich werd mir das auf jeden Fall nochmal genauer angucken.
Danke für den Tipp.

Ich hab das Problem auf jeden Fall gestern nach Stundenlangen frikeln noch gelöst bekommen... vielleicht nicht die schönste Art aber es funktioniert g

Es musste einfach nur die Stelle


BodyratingsListBox.DataContext = null;
BodyratingsListBox.DataContext = athlet.Bodyratings;

durch

BodyratingsListBox.DataContext = athlet.Bodyratings.Select(b => b);

ersetzt werden und dann läufts. Scheinbar wird die Entität nicht automatisch aktualisiert und man muss nochmal ein Select über alle Einträge laufen lassen.

03.06.2009 - 15:51 Uhr

Hallo zusammen,

ich hab folgendes Problem. Ich hab eine SQL CE 3.5 Datenbank mit ein paar Tabellen die über das Entity Framework mit meiner Anwendung verknüpft wird.
In der Anwendung habe ich eine ListBox in der ich die Einträge einer Tabelle über DataBinding darstelle.
Das Funktioniert soweit ohne Probleme.

In der Maske habe ich quasi auf der linken Seite die Liste und rechts daneben ist ein Eingabedialog wo man neue Datensätze eingeben kann.

Das Problem ist das sich die Liste nicht automatisch aktualisiert sobald ein neuer Eintrag die Datenbank geschrieben wird.

XAML ListBox

<ListBox Name="BodyratingsListBox" ItemTemplate="{StaticResource BodyratingListBoxItem}" ItemsSource="{Binding}" Margin="5" />

XAML ListBoxItem Template


<UserControl.Resources>
        <DataTemplate x:Key="BodyratingListBoxItem">
            <StackPanel>
                <StackPanel Orientation="Horizontal" Margin="1">
                    <Label FontWeight="Bold" FontSize="14" Content="{Binding Path=Date}" Margin="1" />
                    <Label FontWeight="Bold" FontSize="14" Content="{Binding Path=Moods.Name}" Margin="1" />
                </StackPanel> 
                <StackPanel Orientation="Horizontal" Margin="1">
                    <Label Content="Gewicht:" Margin="1" />
                    <Label Content="{Binding Path=Weight}" Margin="1" /> 
                    <Label Content="kg" Margin="1" />
                    <Label Content="Fett:" Margin="1" />
                    <Label Content="{Binding Path=Fat}" Margin="1" />
                    <Label Content="%" Margin="1" />
                    <Label Content="Ruhepuls:" Margin="1" />
                    <Label Content="{Binding Path=PulseResting}" Margin="1" />
                </StackPanel>  
            </StackPanel>
        </DataTemplate>
    </UserControl.Resources>

Zuweisung der Entität zur ListBox

public BodyRatingInputUserControl()
        {
            [...]
            athlet = new AthletEntities();
            BodyratingsListBox.DataContext = athlet.Bodyratings;
        }

Anlegen eines neuen Datensatzes

         private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            Bodyratings bodyRating = new Bodyratings();
                [... Bodyrating Properties befüllen]

                athlet.AddToBodyratings(bodyRating);
                athlet.SaveChanges();

                BodyratingsListBox.DataContext = null;
                BodyratingsListBox.DataContext = athlet.Bodyratings;

                string blah = string.Empty;

                IQueryable<Bodyratings> query = from b in athlet.Bodyratings orderby b.Date descending select b;
                foreach (Bodyratings b in query)
                {
                    blah += b.Date + " ";
                }

                MessageBox.Show(blah);
        }

Die Messagebox am Ende hab ich nur drin um zu checken ob der Datensatz auch wirklich in der Datenbank gelandet ist... und das ist er.

Ich hoffe ihr könnt mir helfen.
Schonmal danke im vorraus.

Schönen Gruß
cav3man

13.06.2007 - 11:52 Uhr

Hmm meine Vermutung mit dem löschen über

Doc.Bookmarks.get_Item(ref BookmarkName).Delete();

klappt jetzt irgendwie doch ^^, aber die Wirkung ist nicht wie erwartet. Die Textmarken sind weg aber die Zeilenumbrüche sind immernoch da.

Kennt jemand von euch eine Möglichkeit die Zeilenumbrüche ebenfalls zu entfernen? bzw. Absätze und Tabellen immer am Ende des Dokumentes einzufügen?

13.06.2007 - 11:36 Uhr

Guten Tag

Ich bin gerade dabei das Projekt für meine Abschlussprüfung zum FI AE zu erstellen. Im groben geht es darum Worddokumente zu erstellen.

An und für sich klappt alles ganz gut... bis auf eine Kleinigkeit.
Ich habe eine .dot Vorlage mit Textmarken die über mein Programm gefüllt werden sollen. Allerdings werden nicht immer alle Textmarken verwendet. Das Problem ist nun das die nicht angesprochenen Textmarken weiterhin im Dokument bleiben und unschöne Zeilenumbrüche entstehen. Wenn z.B. nur die erste und die letzte Textmarke gefüllt wird (worst case =D) ist dazwischen eine Seite Freiraum.

Folgendes habe ich bereits ausprobiert.

Doc.Bookmarks.get_Item(ref BookmarkName).Delete();

Jedoch tut sich da gar nichts =(

Eine andere Möglichkeit die ich mir überlegt habe ist einfach alles nacheinander ans Ende vom Dokument zu hängen. Da habe ich auch eine Quelle gefunden die beschreibt wie das ganze Funktioniert... jedoch nur in VBA

Im Beispiel steht dort

oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)

Allerdings gibt es bei C# kein Doc.Bookmarks.Item... und \endofdoc wird noch weniger akzeptiert.

Ich bedanke mich schonmal im Vorfeld für Hilfestellungen.
Gruß
Felix