Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

DataGridView σε UserControl και Designer Serialization

Îåêßíçóå áðü ôï ìÝëïò Hal9000. Τελευταία δημοσίευση από το μέλος maspr στις 11-01-2006, 13:05. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-12-2005, 11:27 8193

    DataGridView σε UserControl και Designer Serialization

    Έχω δημιουργήσει ένα UserControl το οποίο περιέχει ένα DataGridView. Έχω δημιουργήσει και 2 public properties DataSource και GridColumns. Το πρώτο είναι τύπου DataView και ενημερώνει το DataSource του DataGridView ώστε από το designer κάποιος να μπορεί να συνδέσει το DataGridView με ένα DataView. Το δεύτερο είναι τύπου DataGridViewColumnCollection και αναφέρεται στο property Columns του DataGridView. Το πρόβλημα έγκειται στο ότι, αν και στο designer βλέπω κανονικά τα columns του DataGridView και μπορώ να κάνω αλλαγές στα properties τους, όταν τρέξει το πρόγραμμα οι αλλαγές έχουν χαθεί. Και αυτό παρόλο που έχω βάλει το attribute DesignerSerializationVisibility(DesignerSerializationVisibility.Content) στο property GridColumns. Προφανώς, για κάποιο λόγο που δε γνωρίζω, ο designer δε γράφει τον κατάλληλο κώδικα. Χρειάζεται μήπως κάποιο πρόσθετο attribute στη δήλωση του property GridColumns ή πρέπει να δημιουργώ εγώ τον κατάλληλο κώδικο και αν ναι πώς γίνεται κάτι τέτοιο;

    Ακολουθεί ο κώδικας του UserControl

    Public Class DataGridViewControl

    Public Property DataSource() As DataView

    Get

    Return DirectCast(Me.dgvTable.DataSource, DataView)

    End Get

    Set(ByVal value As DataView)

    Me.dgvTable.DataSource = value

    End Set

    End Property

    <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _

    Public Property GridColumns() As DataGridViewColumnCollection

    Get

    Return Me.dgvTable.Columns

    End Get

    Set(ByVal value As DataGridViewColumnCollection)

    While Me.dgvTable.Columns.Count > 0

    Me.dgvTable.Columns.Remove(Me.dgvTable.Columns(0))

    End While

    Dim column As DataGridViewColumn

    For Each column In value

    Me.dgvTable.Columns.Add(column)

    Next

    End Set

    End Property

    End Class

  •  11-01-2006, 13:05 8560 σε απάντηση της 8193

    Απ: DataGridView σε UserControl και Designer Serialization

    Δοκίμασε:

    <Serializable()> Public Class DataGridViewControl
    ...
    ...


    * * *
    Μάνος Ασπραδάκης
    maspr(at)freemail.gr
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems