He intentado todo y no he llegado a ninguna parte, así que espero que alguien me pueda dar el momento. Simplemente no puedo obtener el enlace para extraer los datos en la cuadrícula de datos con éxito.Encuadernación WPF DataGrid a DataTable usando TemplateColumns
I tienen una DataTable que contiene varias columnas con de MyDataType
public class MyData
{
string nameData {get;set;}
bool showData {get;set;}
}
MyDataType tiene 2 propiedades (una cadena, un booleano) he creado una prueba DataTable
DataTable GetDummyData()
{
DataTable dt = new DataTable("Foo");
dt.Columns.Add(new DataColumn("AnotherColumn", typeof(MyData)));
dt.Rows.Add(new MyData("Row1C1", true));
dt.Rows.Add(new MyData("Row2C1", false));
dt.AcceptChanges();
return dt;
}
tengo una WPF DataGrid que quiero mostrar mi DataTable. Pero todo lo que quiero hacer es cambiar cómo se representa cada celda para mostrar [TextBlock] [Button] por celda con valores vinculados al objeto MyData y aquí es donde tengo una tonelada de problemas.
Mi XAML se parece a esto
<Window.Resources>
<ResourceDictionary>
<DataTemplate x:Key="MyDataTemplate" DataType="MyData">
<StackPanel Orientation="Horizontal" >
<Button Background="Green" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,0,0,0" Content="{Binding Path=nameData}"></Button>
<TextBlock Background="Green" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" Text="{Binding Path=nameData}"></TextBlock>
</StackPanel>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
<Grid>
<dg:DataGrid Grid.Row="1" ItemsSource="{Binding}" AutoGenerateColumns="True"
x:Name="dataGrid1" SelectionMode="Single" CanUserAddRows="False"
CanUserSortColumns="true" CanUserDeleteRows="False" AlternatingRowBackground="AliceBlue"
AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn" />
</Grid>
Ahora todo lo que hago una vez cargado es tratar de obligar a la DataTable a la WPF DataGrid
dt = GetDummyData();
dataGrid1.ItemsSource = dt.DefaultView;
El TextBlock y Button se presenta, pero Don 't bind, que los deja en blanco. ¿Alguien podría decirme si tienen alguna idea de cómo solucionar esto? Esto debería ser simple, eso es lo que Microsoft nos hace creer. He configurado el Column.CellTemplate
durante el evento AutoGenerating
y todavía no obtengo ningún enlace.
Por favor ayuda!
¿Usted intentó establecer la tabla de datos de GetDummyData como el DataGrid.DataContext? – Ragepotato
Ya lo hice y sigue siendo lo mismo. No hay cambios en los elementos de UIE ya que parecen estar libres. He intentado utilizar el Evento AutoGeneratingColumn para establecer mi propia Column.CellTemplate y aún nada. ¿Alguna otra idea? Gracias Gracias –
Pruebe esto: [C# Lea Excel y muestre en WPF DataGrid] (http://www.codearsenal.net/2012/06/c-sharp-read-excel-and-show-in-wpf.html) –