• C # 数据绑定(1)——将DataTabel的data添加ListView


    文/嶽永鹏

    目标界面:

    功能:通过响应UI Textbox 的值向ListView 绑定新添加的纪录。

    UI XAML 代码

     1 <Grid Margin="5">
     2             <Grid.ColumnDefinitions>
     3                 <ColumnDefinition Width="Auto"/>
     4                 <ColumnDefinition/>
     5             </Grid.ColumnDefinitions>
     6             <Grid.RowDefinitions>
     7                 <RowDefinition  Height="Auto"/>
     8                 <RowDefinition Height="Auto"/>
     9                 <RowDefinition Height="Auto"/>
    10                 <RowDefinition Height="Auto"/>
    11                 <RowDefinition Height="Auto"/>
    12                 <RowDefinition Height="Auto"/>
    13                 <RowDefinition/>
    14             </Grid.RowDefinitions>
    15             <TextBlock  Grid.Row="0" Grid.Column="0" Text="商品名称" HorizontalAlignment="Right" VerticalAlignment="Center" />
    16             <TextBox Grid.Row="0" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComName}" Name="tbkName"/>
    17             <TextBlock  Grid.Row="1" Grid.Column="0" Text="商品进货单价" HorizontalAlignment="Right" VerticalAlignment="Center" />
    18             <TextBox Grid.Row="1" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComInPrice}" Name="tbkInPrice"/>
    19             <TextBlock  Grid.Row="2" Grid.Column="0" Text="商品零售价格" HorizontalAlignment="Right" VerticalAlignment="Center" />
    20             <TextBox Grid.Row="2" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComOutPrice}" Name="tbkOutPrice"/>
    21             <TextBlock  Grid.Row="3" Grid.Column="0" Text="进货数量" HorizontalAlignment="Right" VerticalAlignment="Center" />
    22             <TextBox Grid.Row="3" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComOutPrice}" Name="tbkComCount"/>
    23             
    24             <Button Grid.Row="4" Grid.Column="1" Content="添加新纪录" Margin="2" Padding="2" Name="btnAdd" Click="btnAdd_Click" />
    25             
    26             <TextBlock Grid.Row="5" Grid.ColumnSpan="2"  HorizontalAlignment="Stretch"  VerticalAlignment="Center"  Background="Black" />
    27             
    28             <ListView Name="lstDisplay" ItemsSource="{Binding}" Grid.Row="6" Grid.ColumnSpan="2">
    29                 <ListView.View>
    30                     <GridView>
    31                         <GridView.Columns>
    32                             <GridViewColumn  Header="AutoID" DisplayMemberBinding="{Binding AutoID}"/>
    33                             <GridViewColumn Header="商品名称" DisplayMemberBinding="{Binding ComName}"/>
    34                             <GridViewColumn Header="进货价格" DisplayMemberBinding="{Binding Path=ComInPrice,StringFormat={}{0:c}}"/>
    35                             <GridViewColumn Header="零售价格" DisplayMemberBinding="{Binding Path=ComOutPrice,StringFormat={}{0:c}}"/>
    36                             <GridViewColumn Header="进货数量" DisplayMemberBinding="{Binding ComCount}"/>
    37                         </GridView.Columns>
    38                     </GridView>
    39                 </ListView.View>
    40             </ListView>
    41         </Grid>
    View Code

    c# 后台代码

     DataTable Commodity = newTable();
    
            public MainWindow()
            {
                InitializeComponent();
                //DataTable Commodity = newTable();
              
            }
    
           
    
            private void btnAdd_Click(object sender, RoutedEventArgs e)
            {
                
                addNewMember(Commodity);
                lstDisplay.DataContext = Commodity;
    
            }
    
            private void btnDelete_Click(object sender, RoutedEventArgs e)
            {
                Button b = sender as Button;
                Int32 AutoID = Convert.ToInt32(b.CommandParameter);
                delMember(Commodity, AutoID);
                lstDisplay.DataContext = Commodity;
                lstDisplay.Items.Refresh();
    
            }
    
            private DataTable delMember(DataTable Table,Int32 laction)
            {
                //Deleting  a existed row in datatable Commodity;
                DataRow delRow = Table.Rows.Find(laction);
                Table.Rows.Remove(delRow);
                return Table;
            }
    
            private  DataTable addNewMember(DataTable Table)
            {
                
    
                //inserting a new row in datatable Commodity;
    
                DataRow newRow = Table.NewRow();
                newRow["ComName"] = tbkName.Text;
                newRow["ComInPrice"] = tbkInPrice.Text;
                newRow["ComOutPrice"] = tbkOutPrice.Text;
                newRow["ComCount"] = tbkComCount.Text;
                Table.Rows.Add(newRow);
                return Table;
            }
    
    
    
            private static DataTable newTable()
            {
                //Create a new table named Commodity
                DataTable commodity = new DataTable("Commodity");
    
    
                //instert new columns
                DataColumn auto = new DataColumn("AutoID", typeof(Int32));
                //setting the column auto increment 
                auto.AutoIncrement = true;
                commodity.Columns.Add(auto);
                commodity.Columns.Add("ComName", typeof(string));
                commodity.Columns.Add("ComInPrice", typeof(double));
                commodity.Columns.Add("ComOutPrice", typeof(double));
                commodity.Columns.Add("ComCount", typeof(System.Int32));
                commodity.PrimaryKey = new DataColumn[] { commodity.Columns[0] };
                return commodity;
            }
    
           
          
    
            
    View Code
  • 相关阅读:
    nginx日志、变量
    http相关
    nginx.conf文件的使用
    NA交换①
    第一章 何为网络
    第二章 以太网
    SATA、SCSI、SAS
    第十章 安全
    附录A 思科互联网络操作系统(IOS)
    标准ACL、扩展ACL和命名ACL的配置详解
  • 原文地址:https://www.cnblogs.com/YUEYongpeng/p/3498056.html
Copyright © 2020-2023  润新知