2010-09-23 4 views
0

Je veux lier un 'ObservableCollection' à un dataGrid Silverlight et permettre au contenu d'être éditable.Comment créer un simple dataGrid éditable dans Silverlight

J'ai le XAML suivant, qui permet l'édition dans l'interface utilisateur, mais une fois que je clique sur la ligne, il revient à l'original.

Il me manque évidemment quelque chose, des idées?

<sdk:DataGrid AutoGenerateColumns="False" 
        Height="81" 
        Margin="520,349,60,0" 
        Name="MessageBoxButtons" 
        ItemsSource="{Binding Path=ButtonsView}" 
        AlternatingRowBackground="Gainsboro" 
        RowBackground="White" 
        HeadersVisibility="All" 
        BorderThickness="2" 
        VerticalAlignment="Top" 
        CanUserSortColumns="False">      
     <sdk:DataGrid.Columns> 
      <sdk:DataGridTextColumn Binding="{Binding}" 
            CanUserReorder="True" 
            CanUserResize="True" 
            CanUserSort="True" 
            Width="*" 
            Header="Button Text" />    
     </sdk:DataGrid.Columns> 
    </sdk:DataGrid> 

Répondre

1

Les chaînes sont immuables. Autrement dit, vous ne pouvez pas modifier la valeur d'une instance spécifique d'une chaîne. Ce qui se passe lorsque vous affectez des valeurs de chaîne à des chaînes, c'est qu'un nouvel objet String est créé et affecté à votre variable.

La liaison fonctionne normalement sur les propriétés des objets. Vous traitez essentiellement la chaîne comme une source de données et une propriété qui peut être modifiée. Le résultat final est que la valeur est modifiée puis rejetée car les chaînes réelles de la liste ne sont pas remplacées.

Vous souhaitez avoir une liste d'objets simples qui ont des propriétés de chaîne à la place.

+0

évidente maintenant vous avez le signaler – AwkwardCoder