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"/>)




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM