Laden...

DataGrid CellEditingTemplate binding nicht möglich

Erstellt von Taladan vor 11 Jahren Letzter Beitrag vor 10 Jahren 1.195 Views
Taladan Themenstarter:in
582 Beiträge seit 2008
vor 11 Jahren
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

P
5 Beiträge seit 2013
vor 10 Jahren

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?

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 10 Jahren

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

5.299 Beiträge seit 2008
vor 10 Jahren

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.