2017-03-07 3 views
0

Also habe ich ein kleines Programm für Lagerarbeiter für eine Firma, die dieses PDA-Gerät verwenden. http://www.thebarcodewarehouse.co.uk/Images/Product/Default/large/Honeywell-Dolphin60s-image1.jpgWindows Mobile 5.0 Datagrid Spaltengröße

Es verfügt über Betriebssystem Windows Mobile 5.0 enter image description here Wie in der Abbildung dargestellt, die Beschreibung und die Codespalte haben die gleiche Größe. Ich weiß, dass es eine alte Technologie ist, aber mein Manager besteht darauf, die Beschreibungsspalte auf der Last breiter zu machen (manuell können wir sie vergrößern, nachdem sie geladen ist).

Ich habe diesen Code geschrieben.

DataGridTableStyle ts = new DataGridTableStyle(); 
    DataGridTextBoxColumn cs = new DataGridTextBoxColumn(); 

    cs = new DataGridTextBoxColumn(); 
    cs.MappingName = "Desc"; 
    cs.HeaderText = "description"; 

    cs.Width = 150; 
    ts.GridColumnStyles.Add(cs); 

    cs = new DataGridTextBoxColumn(); 
    cs.MappingName = "Code"; 
    cs.HeaderText = "code"; 
    cs.Width = 50; 
    ts.GridColumnStyles.Add(cs); 


    cs = new DataGridTextBoxColumn(); 
    cs.MappingName = "barcode"; 
    cs.HeaderText = "barcode"; 
    cs.Width = 90; 
    ts.GridColumnStyles.Add(cs); 

    DgView.TableStyles.Clear(); //DgView is the Datagrid 
    DgView.TableStyles.Add(ts); 

      DgView.DataSource = AllKinds.AsEnumerable(). 
       OrderBy(x => x.Field<string>("Desc")). 
       Select(p => new 
       { 
        Description = p.Field<string>("Desc").Trim(), 
        Code = p.Field<string>("Code").Trim() 
       }).ToList(); 
+0

Versuchen Sie, den DgView-Stil nach dem Festlegen der DgView.DataSource festzulegen. Überprüfen Sie den Inhalt von DgView auf Ihre Zuordnungen. BTW: Der Screenshot zeigt ein Gerät mit Windows Embedded Handheld 6.5 und NICHT Windows Mobile 5! – josef

+0

Oh mein Entschuldigung in meinem Projekt wurde Windows mobile 5. Ich habe versucht, was Sie gesagt haben, aber immer noch, wenn es lädt, sind die Spalten alle die gleichen Größen. –

+0

Es muss etwas mit der Zuweisung nicht stimmen. Schauen Sie sich die Spaltenüberschriften an, auch wenn sie nicht angewendet werden. Ihre Kopfzeile in Stil sagt "Code" und "Beschreibung", aber die Header sind "Code" und "Beschreibung". – josef

Antwort

0

Sie den Table Mapping Name fehlt, wird der Name der Tabelle, dass der Stil zugeordnet werden soll:

DataGridTableStyle ts = new DataGridTableStyle(); 
    //which table is to style 
    ts.MappingName = "data[]"; 

In dem obigen Code, den ich ein Array eines Datenobjekts verwendet. Ich weiß nicht, was ich für Ihre Konstruktion verwenden soll. Siehe also bei MSDN.

Auf einem anderen seltsamen (farbenfrohen, viele Bilder) site man sagt: „Ich BindingSource.GetListName (null) zu erhalten, die String-Darstellung des anonymen Typs verwenden kann.“ und "tableStyle.MappingName = dgCustom.DataSource.GetType(). Name;"

Ein Datagrid kann mehrere Datenquellen haben, normalerweise Datenquellen. Jeder TableStyle definiert den Stil für eine Tabelle und darin den Stil der Spalten. Die Property TableStyle.Mapping definiert den Stil < -> Tabellenbeziehung.

+0

Ich habe versucht, einige der Dinge, die Sie erwähnten, es immer noch nicht funktioniert. Meine Liste heißt "Allkinds", und das Datagrid heißt "DgView", können Sie mir einen Code zeigen. Der Header-Text erhält die Eigenschaftsnamen der Select-Anweisung. Es ist, als würde ich alle Stile umsonst machen. –

+0

ts.MappingName = DgView.DataSource.GetType(). Name; nach dem Daten füllen sollte funktionieren. Andernfalls müssen Sie Ihre AllKinds-Daten dem Post bereitstellen. – josef