Je souhaite obtenir les lignes sélectionnées, mais celles-ci ne comportent qu'une seule ligne. Je veux obtenir tout l'article vérifié. Je pense que j'ai besoin d'ajouter un gestionnaire d'événements lorsque la case est cochée, puis de les rassembler tous. Comment puis-je le faire de la meilleure façon?Kit d'outils Wpf DataGrid DataGridCheckBoxColumn Evénement on_click:
1
A
Répondre
1
Utilisez-vous la liaison de données pour remplir votre DataGrid? Si c'est le cas, lier la valeur vérifiée de votre colonne à un bool dans votre objet de sauvegarde est probablement le meilleur moyen (comme dans: les meilleures pratiques) de le faire. Voici quelques exemples de code:
<Window x:Class="CheckGridSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
Title="Window1" Height="300" Width="300">
<StackPanel>
<tk:DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<tk:DataGrid.Columns>
<tk:DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<tk:DataGridCheckBoxColumn Header="Selected" Binding="{Binding IsChecked}" />
</tk:DataGrid.Columns>
</tk:DataGrid>
<Button Content="Which Items Are Checked?" Click="Button_Click" />
</StackPanel>
</Window>
using System;
using System.Linq;
using System.Text;
using System.Windows;
namespace CheckGridSample
{
public partial class Window1
{
public Window1()
{
InitializeComponent();
DataContext = new[]
{
new MyModel {Name = "Able"},
new MyModel {Name = "Baker", IsChecked = true},
new MyModel {Name = "Charlie"}
};
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var builder = new StringBuilder();
foreach (var item in ((MyModel[]) DataContext).Where(m => m.IsChecked))
builder.Append(Environment.NewLine + item.Name);
MessageBox.Show("Checked:" + builder);
}
}
public class MyModel
{
public string Name { get; set; }
public bool IsChecked { get; set; }
}
}
Êtes-vous vouloir utiliser les cases à cocher ou appuyer simplement multi-sélection? La sélection est la surbrillance bleue sur les éléments et est entièrement différente de si une colonne donnée est cochée ou non. –