LISTVIEW 数据绑定

后台代码:

C# code
   
   
protected void Page_Load( object sender, EventArgs e) { if ( ! Page.IsPostBack) { this .BindListView( - 1 ); this .BindSort(); } } /// <summary> /// 绑定排序选项 /// </summary> protected void BindSort() { // 新建下拉选项 ExtAspNet.ListItem lt = new ExtAspNet.ListItem(); lt.Text = " 默认 " ; lt.Value = " 0 " ; ddLSort.Items.Add(lt); lt = new ExtAspNet.ListItem(); lt.Text = " 单号 " ; lt.Value = " 1 " ; ddLSort.Items.Add(lt); lt = new ExtAspNet.ListItem(); lt.Text = " 客户名称 " ; lt.Value = " 2 " ; ddLSort.Items.Add(lt); lt = new ExtAspNet.ListItem(); lt.Text = " 实际到款日期 " ; lt.Value = " 3 " ; ddLSort.Items.Add(lt); lt = new ExtAspNet.ListItem(); lt.Text = " 凭证到达日期 " ; lt.Value = " 4 " ; ddLSort.Items.Add(lt); // 选定默认项 for ( int i = 0 ; i < ddLSort.Items.Count; i ++ ) { if (ddLSort.Items[i].Text == " 默认 " ) { ddLSort.Items[i].Selected = true ; } } } /// <summary> /// 绑定到款信息 /// </summary> /// <param name="sort"> 排序的方式,如为-1,则为默认排序 </param> protected void BindListView( int sort) { // 定义并获取查询语句 string swhere = getSearchSql(); // 获取排序方式 swhere += GetSort(sort); DataTable dt = tbBKPayedFund_BLLSub.GettbBKPayedFundByNoRefAllByFilte(swhere); this .ListView1.DataSource = dt; this .ListView1.DataBind(); } #region 可区域可复用方法 /// <summary> /// 获取查询语句 /// </summary> /// <returns></returns> protected string getSearchSql() { string swhere = " 1=1 " ; // 获取客户名称 if ( this .tbCustomerName.Text != "" ) { swhere += " and Customer_FullName like '% " + tbCustomerName.Text + " %' " ; } // 返回查询sql语句 return swhere; } /// <summary> /// 获取排序语句 /// </summary> /// <param name="sort"> 排序种类 </param> /// <returns> 排序语句 </returns> protected string GetSort( int sort) { string sortsql = "" ; // 判断排序的值并分配相应的排序语句 switch (sort) { case 0 : sortsql = " order by PayedFund_Code desc,PayedFund_CustomerID desc " ; break ; case 1 : sortsql = " order by PayedFund_Code desc " ; break ; case 2 : sortsql = " order by PayedFund_CustomerID desc " ; break ; case 3 : sortsql = " order by PayedFund_PayedDate desc " ; break ; case 4 : sortsql = " order by PayedFund_AdvanceVoucherReachTime desc " ; break ; default : sortsql = " order by PayedFund_Code desc,PayedFund_CustomerID desc " ; break ; } // 返回 return sortsql; } #endregion /// <summary> /// 排序方式改变响应 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ddLSort_SelectedIndexChanged( object sender, EventArgs e) { // 将之前为listview绑定的数据清空 ListView1.DataSource = null ; ListView1.DataBind(); int sort = Convert.ToInt32( this .ddLSort.SelectedValue); // 重新绑定数据 this .BindListView(sort); }
WPF中ListView是一个非常强大的控件,它可以用于呈现列表数据数据绑定是WPF编程中的一个核心概念,通过数据绑定可以将数据和UI元素进行关联。下面是一个简单的例子,演示如何使用ListView进行数据绑定。 1. 创建一个数据模型类 首先我们需要定义一个数据模型类,用于表示每个列表项的数据。例如,我们可以定义一个Person类,包含Name和Age属性。 ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } } ``` 2. 创建一个ViewModel类 接下来,我们需要创建一个ViewModel类,用于管理ListView数据源。例如,我们可以定义一个PeopleViewModel类,包含一个ObservableCollection<Person>类型的People属性,用于存储所有的Person对象。ObservableCollection是一个特殊的集合类,它可以自动通知UI元素数据源的变化。 ```csharp public class PeopleViewModel { public ObservableCollection<Person> People { get; set; } public PeopleViewModel() { People = new ObservableCollection<Person>(); People.Add(new Person { Name = "Tom", Age = 20 }); People.Add(new Person { Name = "Jerry", Age = 30 }); People.Add(new Person { Name = "Mickey", Age = 25 }); } } ``` 3. 在XAML中创建ListView控件 在XAML中创建ListView控件,并通过ItemsSource属性将其与ViewModel的People属性进行绑定。可以使用DataTemplate定义每个列表项的UI元素。 ```xml <ListView ItemsSource="{Binding People}"> <ListView.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Name}" /> <TextBlock Text="{Binding Age}" /> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> ``` 4. 在窗口代码中设置DataContext 最后,在窗口代码中设置DataContext为PeopleViewModel的实例。 ```csharp public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new PeopleViewModel(); } } ``` 这样,当窗口加载时,ListView就会自动显示ViewModel的People属性中的所有数据。当数据发生变化时,ListView也会自动更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值