wpf中的datagrid绑定类集合与datatable

    技术2022-05-19  18

    绑定类集合的代码

     

     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;

            }

     

    否则 界面中的表格最下边有一个空行。


    最新回复(0)