Laden...

DataGrid CellEditingTemplate binding nicht möglich

Letzter Beitrag vor 11 Jahren 4 Posts 1.203 Views
DataGrid CellEditingTemplate binding nicht möglich

Hallo,

ich habe ein Problem mit dem Binding, wenn sich das Template beim Wechsel vom Ansichts- in den Editiermodus ändernt. Ich erzeuge für ein bestimmtes Objekt die Spalten selbst.

DatafieldDataGridTemplateColumn col = new DatafieldDataGridTemplateColumn();
                col.ColumnName = e.PropertyName;  // so it knows from which column to get MyData
                col.CellTemplate = (DataTemplate)ucKonvertierungseditor.dgTemp.FindResource("DataFieldTemplate");
                
                col.CellEditingTemplate = (DataTemplate)ucKonvertierungseditor.dgTemp.FindResource("DataFieldChangeTemplate");
                e.Column = col;
                e.Column.Header = e.PropertyName;

Wenn ich nun in den Editiermodus wechsle, dann erhalte ich die typische Bindingmeldung, das das Objekt nicht die entsprechenden Propertys hat. Wenn ich im o.g. geannnten Code die Templates Edit-> View -> Edit Tausche, habe ich die gleiche Fehelrmeldung, in der Edit-Template. Es scheint so, als würde sich der DataContext ändern, bzw gar nicht vorhanden sein.


<DataTemplate x:Key="DataFieldTemplate">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <TextBlock Text="{Binding Path=Input, Mode=OneWay}" />
            </Grid>
        </DataTemplate>
        
        <DataTemplate x:Key="DataFieldChangeTemplate">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <TextBlock x:Name="tbInput" Text="{Binding Path=Input, Mode=OneWay}" />
                <TextBox x:Name="EditBoxOutput" Text="{Binding Path=Output, Mode=TwoWay}" Grid.Row="1" />
            </Grid>
        </DataTemplate>

Weiß jemand Rat?

Gruß dat Tala

Hi ich hab genau das gleiche Problem.

Ich konnte im Internet bis jetzt auch nichts weiter zu finden können außer diesen Thread.

Hast du in der Zwischenzeit eine Lösung finden können?

Oje ist ja schon fast nicht mehr war.

Jain. Das gebundene Objekt hat einen Schalter spendiert bekommen, den ich dann mit einen VisibleBooleanConverter in einem Datatemplate.

Gruß dat Tala

ich versteh nicht, warum die DataTemplates codeseitig zugewiesen werden. Sowas kann man doch wunnebar direkt im Xaml notieren.
Da hat man dann auch Unterstützung fürs Binding-Picking im Xaml-Editor, und sieht also bereits im Designer, ob die Bindings stimmen oder nicht.

guck - hier sogar praktisch umgesetzt - beachte die DataGridTemplateColumn in LookupConverter

Der frühe Apfel fängt den Wurm.