zoukankan      html  css  js  c++  java
  • 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"/>)




     
  • 相关阅读:
    Google Chrome 默认非安全端口列表
    js判断类型的方法
    博客园样式排版自定义
    easyloader.js源代码分析
    JQuery操作cookies
    js获取iframe里面的dom
    封装GetQueryString()方法来获取URL的value值
    js 获取系统时间:年月日 星期 时分秒(动态)
    vue 滚动加载数据
    props 父组件给子组件传递参数
  • 原文地址:https://www.cnblogs.com/zminmin/p/6890521.html
Copyright © 2011-2022 走看看