2016-05-12 6 views
1

Gibt es eine Möglichkeit, die Spalten eines Datagrid zu einem GridViewRowPresenter zu füttern?GridViewRowPresenter mit Datagrid-Spalten

Es ist nicht direkt durchgeführt werden kann, wie man DataGridColumn verwendet und die anderen GridViewColumn so funktioniert das nicht:

<GridViewRowPresenter Columns="{Binding ElementName=myDataGrid, Path=Columns, Mode=OneWay}" /> 

Antwort

1

ich nicht versucht haben, aber so etwas wie dies funktionieren soll:

public class MyGridViewRowPresenter : GridViewRowPresenter 
{ 
    public static readonly DependencyProperty NumberOfColumnsProperty = DependencyProperty.Register("NumberOfColumns", typeof(int), typeof(MyGridViewRowPresenter), new PropertyMetadata(0)); 

    public int NumberOfColumns 
    { 
     get { return (int)GetValue(NumberOfColumnsProperty); } 
     set { SetValue(NumberOfColumnsProperty, value); } 
    } 

    public override void EndInit() 
    { 
     base.EndInit(); 
     for (var i = 0; i < NumberOfColumns; i++) 
     { 
      Columns.Add(new GridViewColumn()); 
     } 
    } 
} 

Nutzung

<local:MyGridViewRowPresenter NumberOfColumns="{Binding ElementName=myDataGrid, Path=Columns.Count, Mode=OneWay}" /> 

habe ich etwas ähnliches wie ein Standard-Raster, also statt Zeilen- oder Spaltendefinitionen zu machen und dann Spalten und Zeilen hinzuzufügen, würde ich einfach sagen columns = somenumber und das würde es tun.

+0

Ich denke MyColumns (Xaml) ist tatsächlich NumberOfColumns? Während das funktionieren könnte, ist es weit von dem, was ich will. Wenn ich die Größe einer Spalte im Datagrid verändere, muss die Spalte im GridViewRowPresenter gleichzeitig skaliert werden. Du hast die Idee. – Natxo

+0

Ja, ich habe es korrigiert. Ich würde nicht wissen, wie es geht, ich habe etwas in meinen Gedanken, aber es wäre hässlich :). – adminSoftDK