locked
Höhe von der erste Zeile in einem Datagrid ändern??? RRS feed

  • Frage

  • Hallo,

    ich erzeuge während der Laufzeit ein Datagrid und möchte die Höhe von der erste Zeile ändern.

    Weiß jemand vielleicht, wie das geht?


    Gruesse, NUNUI

    Sonntag, 21. Dezember 2014 04:51

Antworten

  • Hi,
    setze die Height-Eigenschaft der gewünschten Zeile einfach auf den gewünschten Wert. Hier mal eine kleine Demo:

    using System.Collections.Generic;
    using System.Windows.Controls;
    
    namespace SilverlightApplication1
    {
      public partial class Page1 : Page
      {
    
        DataGrid dg = new DataGrid();
    
        public Page1()
        {
          InitializeComponent();
          this.LayoutRoot.Children.Add(dg);
          List<Data> liste = new List<Data>();
          for (int i = 1; i < 10; i++)
          {
            liste.Add(new Data() { Anzeige = i.ToString() });
          }
          dg.ItemsSource = liste;
          dg.LoadingRow += dg_LoadingRow;
        }
    
        bool setHeight = true;
    
        void dg_LoadingRow(object sender, DataGridRowEventArgs e)
        {
          if (setHeight)
          {
            var r = e.Row;
            r.Height = 100;
            setHeight = false;
          }
        }
      }
      public class Data
      {
        public string Anzeige { get; set; }
      }
    }

    --
    Peter


    • Bearbeitet Peter Fleischer Sonntag, 21. Dezember 2014 14:25
    • Als Antwort vorgeschlagen Peter Fleischer Sonntag, 21. Dezember 2014 14:25
    • Als Antwort markiert Nunui Sonntag, 21. Dezember 2014 23:46
    Sonntag, 21. Dezember 2014 14:24

Alle Antworten

  • Hi,
    setze die Height-Eigenschaft der gewünschten Zeile einfach auf den gewünschten Wert. Hier mal eine kleine Demo:

    using System.Collections.Generic;
    using System.Windows.Controls;
    
    namespace SilverlightApplication1
    {
      public partial class Page1 : Page
      {
    
        DataGrid dg = new DataGrid();
    
        public Page1()
        {
          InitializeComponent();
          this.LayoutRoot.Children.Add(dg);
          List<Data> liste = new List<Data>();
          for (int i = 1; i < 10; i++)
          {
            liste.Add(new Data() { Anzeige = i.ToString() });
          }
          dg.ItemsSource = liste;
          dg.LoadingRow += dg_LoadingRow;
        }
    
        bool setHeight = true;
    
        void dg_LoadingRow(object sender, DataGridRowEventArgs e)
        {
          if (setHeight)
          {
            var r = e.Row;
            r.Height = 100;
            setHeight = false;
          }
        }
      }
      public class Data
      {
        public string Anzeige { get; set; }
      }
    }

    --
    Peter


    • Bearbeitet Peter Fleischer Sonntag, 21. Dezember 2014 14:25
    • Als Antwort vorgeschlagen Peter Fleischer Sonntag, 21. Dezember 2014 14:25
    • Als Antwort markiert Nunui Sonntag, 21. Dezember 2014 23:46
    Sonntag, 21. Dezember 2014 14:24
  • Es funktioniert wunderbar, VIELEN DANK!!!


    Gruesse, NUNUI

    Sonntag, 21. Dezember 2014 23:48
  • eine Frage habe ich aber noch. Ich möchte auch dass der Inhalt von einzelne Zellen mittig angezeigt werden.

    Wenn ich aber folgendes mache, ändert sich leider nichts! Woran liegt es eigentlich?

    e.Row.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;


    Gruesse, NUNUI

    Montag, 22. Dezember 2014 18:03
  • Hi,
    die Zentrierung der Zeile wirkt nicht auf die Zentrierung eines Zellinhaltes. Das sollten man über einen Style für die CellStyle-Eigenschaft einer Spalte machen, z.B. so:

      <navigation:Page.Resources>
        <Style TargetType="sdk:DataGridCell">
          <Setter Property="HorizontalAlignment" Value="Center"/>
        </Style>
      </navigation:Page.Resources>

    --
    Peter

    Dienstag, 23. Dezember 2014 05:14