locked
ICollectionView aktualisiert den falschen Datensatz RRS feed

  • Allgemeine Diskussion

  • ich habe ein Datepicker und ein DataGrid an eine ICollectionView gebunden. Mit dem Datagrid wähle ich einen Datensatz aus. Mit dem Datepicker aktualisiere ich ein Datum.

    Wenn ich nun direkt den Datensatz mit dem Datagrid wechsle, dann wird das Datum nicht im aktuellen sondern im neuen Datensatz aktualisiert.

    Klicke ich stattdessen nach der Datenänderung erst noch in ein gebundenes Textfeld und wechsle erst dann den Datensatz, dann wird das Datum im aktuellen Datensatz aktualisiert.

    Offenbar wird der Datensatz erst vom Datepicker aktualisiert, wenn dieser schon gewechselt ist, wenn ich direkt danach diesen mit dem DataGrid wechsle. Wenn ich in ein anderes Feld zuvor klicke, dann wird noch der aktuelle Datensatz aktualisiert.

    Jetzt sind das aber alle Build-In Funktionalitäten des Silverlight Frameworks, was kann man denn da tun. Ich verwende übrigens Silverlight 3.

    Was kann man tun, ist das ein anerkannter Bug oder habe ich was falsch gemacht?

     

    • Typ geändert Robert Breitenhofer Freitag, 23. September 2011 07:00 Keine Rückmeldung des Fragenstellender
    Mittwoch, 14. September 2011 14:21

Alle Antworten

  • Poste doch mal den Binding Code des DataGrids und des Datepickers...
    Mittwoch, 14. September 2011 15:12
    Beantworter
  • Datepicker:

    <controls:DatePicker SelectedDate="{Binding Path=StartDate, Mode=TwoWay}" Name="dpStart" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="111,269,0,0" />
            <controls:DatePicker HorizontalAlignment="Left" Margin="111,299,0,0" Name="dpEnd" SelectedDate="{Binding Path=EndDate, Mode=TwoWay}" VerticalAlignment="Top" />
            <TextBlock FontFamily="Arial" FontSize="12" Margin="11,304,0,0" Name="teEnde" Text="Endedatum:" HorizontalAlignment="Left" Width="96" Height="19" VerticalAlignment="Top" />

     

    Datagrid:

    <data:DataGrid AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding}" Height="214" HorizontalAlignment="Left" Margin="12,11,0,0" Name="dgPeriods" VerticalAlignment="Top" Width="475" SelectionChanged="dataGrid1_SelectionChanged">
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Name" Width="250" Binding="{Binding Name}" />
                    <data:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Startdatum" Width="100" Binding="{Binding StartDate}" />
                    <data:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Enddatum" Width="100" Binding="{Binding EndDate}" />
                </data:DataGrid.Columns>
            </data:DataGrid>

     

    Programmcode:

                    this.dgPeriods.DataContext = this.Periods;
                    this.dpStart.DataContext = this.Periods;
                    this.dpEnd.DataContext = this.Periods;
                    this.myTbLastName.DataContext = this.Periods;

     

     


    • Bearbeitet Isix Mittwoch, 14. September 2011 17:31
    Mittwoch, 14. September 2011 17:29

  • Teste mal ein Binding direkt im XAML Code auf das SelectedItem, so wi im folgenden Code:

    <controls:DatePicker SelectedDate="{Binding Path=SelectedItem.StartDate, Mode=TwoWay, ElementName=dgPeriods}" 
    />
    
    
    

     


     

    Donnerstag, 15. September 2011 15:24
    Beantworter
  • ****************************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    ****************************************************************************************************************
    Freitag, 23. September 2011 06:59