Cómo vincular los datos de una matriz a un DataGrid y realizar una actualización de los datos.
Quiero vincular el arreglo a una DataGrid de 4 columnas y actualizar los datos. ¿Es esto posible?
Si no se puede lograr, ¿cómo debo modificarlo?
Para actualizaciones automáticas, parece que podemos vincular a una colección de objetos con valores editables definiendo una clase para el elemento. Pero no sé cómo hacerlo.
public partial class MainWindow : Window
{
int X=18;
public MainWindow()
{
InitializeComponent();
int[] arr = new int[] { 61, 61, 61, 61, 61, 20, 30, 40, 50, 100, 200, 300, 400, 500, 0, 0, 0, 0, 0, 18, 23, 65, 41, 22, 91, 64, 33, 18, 44, 63, 91, 26, 32, 61, 83, 91, 26, 32, 91, 91, 91, 91 };
DataGrid dataGrid = new DataGrid();
dataGrid.AutoGenerateColumns = false;
dataGrid.ItemsSource = arr.ToList();
for (int i = 1; i < 5; i++)
{
DataGridTemplateColumn column = new DataGridTemplateColumn();
column.Header = "Value"+i;
DataTemplate cellTemplate = new DataTemplate();
FrameworkElementFactory textBlock = new FrameworkElementFactory(typeof(TextBlock));
textBlock.SetBinding(TextBlock.TextProperty, new Binding("."));
cellTemplate.VisualTree = textBlock;
column.CellTemplate = cellTemplate;
DataTemplate cellEditingTemplate = new DataTemplate();
FrameworkElementFactory textBox = new FrameworkElementFactory(typeof(TextBox));
textBox.SetBinding(TextBox.TextProperty, new Binding("."));
cellEditingTemplate.VisualTree = textBox;
column.CellEditingTemplate = cellEditingTemplate;
dataGrid.Columns.Add(column);
}
canvas.Children.Add(dataGrid);
Canvas.SetLeft(dataGrid, X);
}
}
El resultado:
Quiero un resultado así:
61, 61, 61, 61, 61,
20, 30, 40, 50, 100,
200, 300, 400, 500, 0,
0, 0, 0, 0, 18,
davy.ai
Para vincular un array a una DataGrid de 4 columnas y actualizar los datos, debes modificar el código de la siguiente manera:
Utiliza una
List<t>
en lugar de un array para habilitar las actualizaciones automáticas.Define las columnas de la
DataGrid
para vincularlas a las propiedades de la clase del item.Aquí tienes un ejemplo de implementación que logra el resultado deseado:
Esta implementación utiliza una
List<item>
donde cada item tiene cuatro propiedades (Value1
aValue4
) que corresponden a las cuatro columnas de laDataGrid
. Se utilizaDataGridTextColumn
para vincular cada propiedad del item.El resultado:
</item></t>”>Comments are closed.