1. 程式人生 > >wpf中的datagrid繫結類集合與datatable

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}

" Margin="10" Name="dataGrid1" SelectionMode="Single" VerticalAlignment="Stretch" Loaded="dataGrid1_Loaded" Background="#00000000" RowBackground="#00000000" RowHeaderWidth="NaN" HeadersVisibility="All" Grid.Column="1">

<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;

        }

否則 介面中的表格最下邊有一個空行。