Ho provato di tutto e non sono riuscito a ottenere nulla, quindi spero che qualcuno possa darmi l'aha momento. Semplicemente non riesco a ottenere il binding per estrarre correttamente i dati nel datagrid.Associazione WPF DataGrid a DataTable utilizzando TemplateColumns
Ho un DataTable che contiene più colonne con di MyDataType
public class MyData
{
string nameData {get;set;}
bool showData {get;set;}
}
MyDataType ha 2 proprietà (una stringa, un valore booleano) ho creato un test 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;
}
Ho WPF DataGrid che voglio mostrare il mio DataTable. Ma tutto quello che voglio fare è cambiare il modo in cui ogni cella viene renderizzata per mostrare [TextBlock] [Button] per cella con valori legati all'oggetto MyData e questo è dove sto avendo una tonnellata di problemi.
mio XAML assomiglia a questo
<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>
Ora tutto io una volta caricato è quello di tentare di impegnare la DataTable al WPF DataGrid
dt = GetDummyData();
dataGrid1.ItemsSource = dt.DefaultView;
Il TextBlock e Button si presentano, ma don 'legare, che li lascia vuoti. Qualcuno potrebbe farmi sapere se hanno qualche idea su come risolvere il problema. Questo dovrebbe essere semplice, questo è ciò che Microsoft ci porta a credere. Ho impostato il Column.CellTemplate
durante l'evento AutoGenerating
e non ottengo ancora alcun legame.
Si prega di aiutare !!!
Hai provato l'impostazione della datatable da GetDummyData come il DataGrid.DataContext? – Ragepotato
Già fatto e ancora la stessa cosa. Nulla cambia su UIElements in quanto sembrano non essere associati. Ho provato a utilizzare l'evento AutoGeneratingColumn per impostare il mio Column.CellTemplate e ancora nulla. Altre idee? Grazie Grazie –
Prova questo: [C# Leggi Excel e Mostra in WPF DataGrid] (http://www.codearsenal.net/2012/06/c-sharp-read-excel-and-show-in-wpf.html) –