2011-03-07 31 views
5

Hola, quiero agregar la casilla de verificación en la vista de la cuadrícula de datos. He escrito el código de prueba pero falla. Lo que intento hacer es agregar un CheckBox en la cuadrícula de datos con los elementos que agrego en él con seleccionar todo y seleccionar ninguna opción.Cómo agregar la casilla de verificación en la cuadrícula de datos WPF C#

No sé cómo hacerlo, así que necesito ayuda. Estoy confundido con algo que, si lo agregamos de forma dinámica, ¿cómo rastrearíamos qué casilla de verificación fue marcada o no?

que tienen código actual

public partial class MainWindow : Window 
    { 
     List<checkedBoxIte> item = new List<checkedBoxIte>(); 
     public MainWindow() 
     { 
      InitializeComponent(); 
      for (int i = 0; i < 5; i++) 
      { 
       checkedBoxIte ite = new checkedBoxIte(); 
       ite.sr = i.ToString(); 
       ite.ch = new CheckBox(); 
       item.Add(ite); 
      } 
      dataGrid1.ItemsSource = item 
     } 
    } 
    public class checkedBoxIte 
    { 
     public string sr {get;set;} 
     public CheckBox ch { get; set; } 
    } 

pero sé que es lo más estúpido que añadir casilla como este, pero era sólo una oportunidad Por encima de clase contiene dos atributos más adelante tendría más, pero todo va a ser cadenas

Respuesta

15

WPF no sabe cómo lidiar con sus artículos checkedBoxIte. Le sugiero que cambie su clase de la siguiente manera:

public class checkedBoxIte 
{ 
    public string MyString {get;set;} 
    public bool MyBool { get; set; } 
} 

Y luego configurar las columnas de su DataGrid de esta manera:

<DataGrid AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" /> 
     <DataGridCheckBoxColumn Header="MyBool" Binding="{Binding MyBool}" /> 
    </DataGrid.Columns> 
</DataGrid> 

Ahora puede establecer la ItemsSource:

for (int i = 0; i < 5; i++) 
{ 
    checkedBoxIte ite = new checkedBoxIte(); 
    ite.MyString = i.ToString(); 
    item.Add(ite); 
} 
dataGrid1.ItemsSource = item; 
+0

Está funcionando perfectamente bien, pero tengo algunos problemas así primero, hay 4 columnas que aparecen repeticiones promedio2. ¿Cómo podemos disparar el evento o verificar qué casilla de verificación es esta? –

+0

Bueno, no creo que sea normal que haya cuatro columnas. ¿Estás seguro de haber establecido 'AutoGenerateColumns' en' False'? –

+0

era verdad.Trabajando ahora.y qué puedo hacer para la segunda parte detectar la fila marcada –

Cuestiones relacionadas