文/嶽永鹏

目标界面:

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

UI XAML 代码

 <Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="商品名称" HorizontalAlignment="Right" VerticalAlignment="Center" />
<TextBox Grid.Row="0" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComName}" Name="tbkName"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="商品进货单价" HorizontalAlignment="Right" VerticalAlignment="Center" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComInPrice}" Name="tbkInPrice"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="商品零售价格" HorizontalAlignment="Right" VerticalAlignment="Center" />
<TextBox Grid.Row="2" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComOutPrice}" Name="tbkOutPrice"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="进货数量" HorizontalAlignment="Right" VerticalAlignment="Center" />
<TextBox Grid.Row="3" Grid.Column="1" Margin="2" VerticalAlignment="Center" Text="{Binding Path=ComOutPrice}" Name="tbkComCount"/> <Button Grid.Row="4" Grid.Column="1" Content="添加新纪录" Margin="2" Padding="2" Name="btnAdd" Click="btnAdd_Click" /> <TextBlock Grid.Row="5" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" Background="Black" /> <ListView Name="lstDisplay" ItemsSource="{Binding}" Grid.Row="6" Grid.ColumnSpan="2">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="AutoID" DisplayMemberBinding="{Binding AutoID}"/>
<GridViewColumn Header="商品名称" DisplayMemberBinding="{Binding ComName}"/>
<GridViewColumn Header="进货价格" DisplayMemberBinding="{Binding Path=ComInPrice,StringFormat={}{0:c}}"/>
<GridViewColumn Header="零售价格" DisplayMemberBinding="{Binding Path=ComOutPrice,StringFormat={}{0:c}}"/>
<GridViewColumn Header="进货数量" DisplayMemberBinding="{Binding ComCount}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>

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[] };
return commodity;
}

C # 数据绑定(1)——将DataTabel的data添加ListView的更多相关文章

  1. Fragment中添加ListView而不使用ListFragment

    最初的构想是,将Fragment和ViewPager结合起来, 然后突发奇想,在第一个Fragment里添加了ListView, 依照网上的建议,extends了ListFragment,接着各种报错 ...

  2. ScrollView中添加ListView

    <p>.要点一:去除ListView的scrollBar,添加ScrollView的scrollBar:</p> <ScrollView android:layout_w ...

  3. WPF学习09:数据绑定之 Binding to List Data

    从WPF学习03:Element Binding我们可以实现控件属性与控件属性的绑定. 从WPF学习07:MVVM 预备知识之数据绑定 我们可以实现控件属性与自定义对象属性的绑定. 而以上两个功能在实 ...

  4. Devexpress WinForm TreeList的三种数据绑定方式(DataSource绑定、AppendNode添加节点、VirtualTreeGetChildNodes(虚拟树加载模式))

    第一种:DataSource绑定,这种绑定方式需要设置TreeList的ParentFieldName和KeyFieldName两个属性,这里需要注意的是KeyFieldName的值必须是唯一的. 代 ...

  5. wex5 如何在js中给data添加数据

    var options = { defaultValues :[ {'xuetang' : xuetang,'time' : time} ] }; this.comp("xuetangDat ...

  6. android how to deal with data when listview refresh

    如何解决listview数据刷新,下拉刷新,上拉加载更多时,图片不闪烁. 在Activity的onResume()方法中将adaper和listView重新再绑定一次. listView.setAda ...

  7. Android中ListView分页加载数据

    public class MainActivity extends Activity { private ListView listView=null; //listview的数据填充器 privat ...

  8. WPF中的数据绑定

    WPF中的数据绑定 基础概念 System.Windows.Data.Binding,他会把两个对象(UI对象与UI对象之间,UI对象与.NET数据对象之间)按照指定的方式粘合在一起,并在他们之间建立 ...

  9. vue的双向数据绑定实现原理

    在目前的前端面试中,vue的双向数据绑定已经成为了一个非常容易考到的点,即使不能当场写出来,至少也要能说出原理.本篇文章中我将会仿照vue写一个双向数据绑定的实例,名字就叫myVue吧.结合注释,希望 ...

随机推荐

  1. jQuery基本操作

    jQuery简介 jQuery是一个兼容多浏览器的javascript库,极大地简化了 JavaScript 编程,核心理念是write less,do more(写得更少,做得更多),对javasc ...

  2. Spring配置文件详解

      转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常有用 spring配置文件是用于指导Sp ...

  3. 关于Android中ArrayMap/SparseArray比HashMap性能好的深入研究

    由于网上有朋友对于这个问题已经有了很详细的研究,所以我就不班门弄斧了: 转载于:http://android-performance.com/android/2014/02/10/android-sp ...

  4. PHP优化笔记

    1.指定display_function内容,用来禁用危险参数 2.指定display_errors = Off 来关闭错误显示 3.这个和上一条有因果关系,关闭了错误前台显示,但是要记录错误信息就必 ...

  5. [Machine-Learning] matlab 矩阵常见基本操作

    概述 对矩阵的主要操作,matlab 中都有现成的指令或者库函数与之对应. 矩阵最早来自于方程组的系数和常数所构成的方阵,这一概念是由19世纪的英国数学家凯利提出的. 创建矩阵 这里写的不全,但是足够 ...

  6. centos6安装svn1.9

    增加svn的源,vi /etc/yum.repos.d/wandisco-svn.repo [WandiscoSVN] name=Wandisco SVN Repo baseurl=http://op ...

  7. Linux系统结构

        Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图 ...

  8. css样式表(四)

    ******* CSS 常用属性 ********* [font] font 设置或检索对象中的文本特性.该属性是复合属性. 使用第一种声明方式参数必须按照如上的排列顺序,且font-size和fon ...

  9. Eclipse通过DDMS打开真机/data/data/目录

    一般真机调试时DDMS里面的File Explorer是不能打开/data 目录的,不过也很容易解决. 1.首先手机要root.这个很简单,网上一大堆资料和软件. 2.仅仅root之后还不行,下载一个 ...

  10. 微信OAuth2.0网页授权

    1.OAuth2.0网页授权 关于网页授权的两种scope的区别说明 1.以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页 ...