wpf中的datagrid繫結類集合與datatable
繫結類集合的程式碼
Code.Dao.XM xm = new Code.Dao.XM();
List<Code.Model.XM> list = xm.List();
dataGrid1.DataContext = list;
xaml寫法
<DataGrid AreRowDetailsFrozen="True" AutoGenerateColumns="False" BorderBrush="Black" CanUserAddRows="True" CanUserDeleteRows="True" GridLinesVisibility="None" Height="Auto" HorizontalAlignment="Stretch" ItemsSource="{Binding}
<DataGridTemplateColumn Header="型別" IsReadOnly="True" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" TextAlignment="Center" Text="{Binding Type.Name}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="名稱" IsReadOnly="True" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" TextAlignment="Center" Text="{Binding Name}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
繫結datatable的程式碼:
Code.Dao.Customer cu = new Code.Dao.Customer();
System.Data.DataTable dt = cu.ListDB();
dataGrid1.ItemsSource = dt.DefaultView;
xaml的寫法與上邊的一樣,注意 Binding 後邊跟的與資料庫表中的欄位名大小寫相同。
在datagrid的onload事件中加上
private void dataGrid1_Loaded(object sender, RoutedEventArgs e)
{
dataGrid1.CanUserAddRows = false;
}
否則 介面中的表格最下邊有一個空行。