WPF中DataGrid相关——数据绑定,增删改

参考网页:http://www.cnblogs.com/fwbnet/archive/2012/05/08/2490974.html     

最近在学习WPF的知识,来园子里写写自己的学习心得,也为了更好的加深印象,以后如果有需要还可以过来翻翻。

一、DataGrid数据绑定

前台代码

 

<Grid x:Name="grid1">
        <Grid.RowDefinitions>
            <RowDefinition Height ="50"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.3*"/>
            <ColumnDefinition Width="0.4*"/>
            <ColumnDefinition Width="10"/>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="10"/>
            <ColumnDefinition Width="100"/>            
            <ColumnDefinition Width="10"/>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="0.1*"/>
        </Grid.ColumnDefinitions>
        <Label x:Name="label1" Content="小区:" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Height="30" Width="80"/>
        <ComboBox x:Name="comboBox1" SelectedIndex="-1" Grid.Row="0" Grid.Column="1" Width="100" Height="30" HorizontalAlignment="Left" VerticalAlignment="Center"/>
        <Button x:Name="button1" Content="查询" Grid.Row="0" Grid.Column="3" Margin="0,5"/>
        <Button x:Name="addBtn" Content="数据添加" Grid.Row="0" Grid.Column="5" Margin="0,5" />
        <Button x:Name="deleteBtn" Content="删除" Grid.Row="0" Grid.Column="7" Margin="0,5" />
        <DataGrid x:Name="dataGrid1" AutoGenerateColumns="False" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="9" Margin="0,0" CanUserAddRows="False" RowEditEnding="dataGrid1_RowEditEnding">
            <DataGrid.Columns>              
                <DataGridTemplateColumn Header="选中" Width="40">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox></CheckBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="房间ID" Width="80" Binding="{Binding Room_id, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="设备ip" Width="80" Binding="{Binding Device_ip, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="申请人姓名" Width="80" Binding="{Binding Sqrxm, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="房屋坐落" Width="80" Binding="{Binding Fwzl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="配租开始时间" Width="80" Binding="{Binding Pzkssj, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="配租结束时间" Width="80" Binding="{Binding Pzjssj, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="付款状态" Width="80" Binding="{Binding Kfzt, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="最后缴费时间戳" Width="80" Binding="{Binding Oa_lastpaydate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="退租状态" Width="80" Binding="{Binding Checkout_state, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTextColumn Header="退租时间" Width="80" Binding="{Binding Checkout_time, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                <DataGridTemplateColumn Header="操作" Width="40">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="处理" Click="WorkBtn_Click"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

效果:

 

后台代码

这个是按钮点击事件

private void Button_Click(object sender, RoutedEventArgs e)
        {           
            DataSet ds = new DataSet();
            ds = SqlHelper.GetInfo();
            List<EquipAlarm> equipAlarms = Tool_ViewModel.GetEquipAlarms(ds);
            dataGrid1.ItemsSource = equipAlarms;   //数据绑定
        }
SqlHelper.GetInfo():
class SqlHelper
    {
        public static DataSet GetInfo()
        {
            string mySQLConStr = “Data Source=localhost;Database=database;User Id=root;Password=123456”; //MySQL连接字符串 
            MySqlConnection mySqlCon = new MySqlConnection(mySQLConStr);
            try
            {
                mySqlCon.Open(); //打开数据库连接                
                string sql = "select * from table1";
                MySqlDataAdapter mySqlAdap = new MySqlDataAdapter(sql, mySqlCon);
                DataSet ds = new DataSet();
                ds.Clear();
                mySqlAdap.Fill(ds);
                return ds;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (mySqlCon.State == ConnectionState.Open)
                {
                    mySqlCon.Close();
                }
            }
        }
    }
EquipAlarm 实体类,不多说了
Tool_ViewModel.GetEquipAlarms(ds) 将数据表的数据装换到实体类中

一些小的细节:
1、DataGrid的所有列都是默认可编辑的,如果要设置某列不能编辑——IsReadOnly属性(<DataGridTextColumn Width="80" IsReadOnly="True"/>)




 

转载于:https://www.cnblogs.com/zminmin/p/6890521.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值