web-dev-qa-db-fra.com

Comment faire une grille de données modifiable dans wpf en utilisant mvvm?

Je veux utiliser une grille de données modifiable, pour ajouter, modifier des données. Est-ce possible avec wpf? Quelqu'un peut-il donner l'exemple?

13
SNS

DataGrid les contrôles ont toutes ces fonctionnalités intégrées. Vous pouvez définir les propriétés CanUserAddRows sur true pour permettre à l'utilisateur d'ajouter des lignes.

DataGrid est modifiable par défaut, où chaque colonne a un contrôle d'édition qui vous permet de modifier sa valeur. Par défaut, le DataGrid génère automatiquement des colonnes pour chaque propriété de votre modèle , vous n'avez donc même pas besoin de définir ses colonnes.

Voici quelques bons liens avec des exemples détaillés que vous pouvez consulter:

http://wpftutorial.net/DataGrid.html

http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples

http://www.c-sharpcorner.com/UploadFile/mahesh/datagrid-in-wpf/

Bonne chance

20
Omri Btian

Avoir un Xaml comme ci-dessous

<Window x:Class="DatGrid.MainWindow"
    xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    xmlns:local="clr-namespace:DatGrid">
<Window.DataContext>
    <local:ViewModel/>
</Window.DataContext>
<StackPanel/>
    <DataGrid ItemsSource="{Binding Path=Values}"></DataGrid>
</StackPanel>
</Window>

Dans le ViewModel est très simple quelque chose comme ci-dessous

class ViewModel
{
    public ObservableCollection<Example> Values
    {
        get;
        set;
    }
}
public class Example
{
    public string A
    {
        get;
        set;
    }
    public string B
    {
        get;
        set;
    }
}

Dans la vue, vous pouvez toujours voir une ligne vide, vous pouvez simplement cliquer et taper quelque chose et appuyer sur Entrée, elle sera mise à jour vers le ViewModel

3
Kumareshan