none
LINQ to SQL soll Daten für Steuerelemente aktualisieren RRS feed

  • Frage

  • Hallo,

    ich suche eine Möglichkeit, mein Steuerelement (in diesem Fall ist es ein TreeView mit HierarchicalDataTemplate) nach Hinzufügen von einem Datenbankeintrag zu aktualisieren. Zu Beachten ist, dass ich im MVVM-Pattern-Stil programmiere. Das heißt, meine ganze Funktionalität (Durch Commands realisiert) für die Datenbehandlung sind in einer Extra-Klasse "WikiSchoolDataContext", so dass der direkte Zugriff auf das Steuerelement erschwert wird (Bzw. die Funktionalität für den DataContext in meiner Fensterklasse).

    So ungefähr sieht das in C#-Code aus:

    namespace WikiSchool.DataContexts
    
    {
     public delegate EventHandler OnDataChangedHandler(object sender, EventArgs e);
     public class MainWindowDataContexts
     {
      static WikiDataContext _context = new WikiDataContext();
      RelayCommands _commandAddArticle = null; 
      public Table<Category> Categories
      {...}
    
      public Table<Articel> Article
      {...}
    
      public ICommand CommandAddArticle
      {...}
    
      private bool ShowAddArticleDialog( Articel article )
      {...}
    
      private void ExecuteAddArticel( object parameter )
      {...}
    
      private void InitializeCommands()
      {...}
    
      public MainWindowDataContexts()
      {
       InitializeCommands();
      } 
    }
    
    public class MainWindiw : Window
    {
      public MainWindow()
      { this.DataContext = new MainWindowDataContext }
    }
    
    
    /* XAML-Code */
    <!--- ..... --->
    <Grid>
    <TreeView Name="trvCategories" ItemSource="{Binding Path=Categories}"/>
    <button Content="Add" Command="{Binding Path=ExecuteAddArticel"}/>
    /* LinqToSQL-Klassen sind mit dem Designer angefertig worden */
    
    Code-Ausschnitt Programm 

    Ich wäre bezüglich eines eleganten Lösungsweges sehr dankbar! 

    GreenPepper_v_1.0

    Samstag, 26. Februar 2011 18:29

Antworten

  • Ja das habe ich mir auch gedacht, aber das Steuerelement hat sich nunmal nicht aktualisiert... Aber ich habe schon den Fehler entdeckt: Beim HierachicelDataTemplate habe ich vergessen, die Bindung auf TwoWay einzustellen.

    Jetzt geht es...

    Danke trotzdem!

    Grüße,

    GreenPepper_v_1.0

    Sonntag, 27. Februar 2011 14:05

Alle Antworten

  • Wenn bei Änderungen der gebundenen Datenquelle ein PropertyChanged ausgelöst
    wird, dann wird auch das TreeView Steuerelement aktualisiert und zeigt die
    geänderten bzw. neu hinzugefügten Datenobjekte an.
     
    --
    Viele Grüße
    Peter
     
     
    Samstag, 26. Februar 2011 22:31
  • Ja das habe ich mir auch gedacht, aber das Steuerelement hat sich nunmal nicht aktualisiert... Aber ich habe schon den Fehler entdeckt: Beim HierachicelDataTemplate habe ich vergessen, die Bindung auf TwoWay einzustellen.

    Jetzt geht es...

    Danke trotzdem!

    Grüße,

    GreenPepper_v_1.0

    Sonntag, 27. Februar 2011 14:05