码迷,mamicode.com
首页 > Windows程序 > 详细

WPF入门(一)——绑定Binding

时间:2016-07-24 13:37:46      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

  实现WPF界面控件属性与后台数据属性绑定。

  建立解决方案如下:

  技术分享  

  技术分享  

MainWindow添加

  一个ListView,显示List,添加绑定语句:  ItemsSource="{Binding Test}“。

  两个Button,增加List和清空List。

xaml代码如下:

技术分享
 1 <Window x:Class="TESTBind.MainWindow"
 2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4         Title="MainWindow" Height="350" Width="525">
 5     <Grid>
 6         <ListView Height="100" HorizontalAlignment="Left" Margin="12,39,0,0" Name="listView1" VerticalAlignment="Top" Width="481" 
 7                   ItemsSource="{Binding Test}"/>
 8         <Button Content="List++" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
 9         <Button Content="ClearList" Height="23" HorizontalAlignment="Left" Margin="124,12,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
10     </Grid>
11 </Window>
View Code

添加BindModel,定义需要绑定的变量

添加Microsoft.Practices.Prism.dll库,引用using Microsoft.Practices.Prism.ViewModel;

技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using Microsoft.Practices.Prism.ViewModel;

namespace TESTBind.Models
{
    public class BindModel : NotificationObject
    {
        public BindModel()
        {
            test = new ObservableCollection<string>();
        }
        private ObservableCollection<string> test;
        public ObservableCollection<string> Test
        {
            get { return test; }
            set
            {
                test = value;
                this.RaisePropertyChanged("Test");
            }
        }
    }
}
View Code

为Test赋值,bindModel.Test = new ObservableCollection<string>(testList);

这里ObservableCollection提供数据更新,我之前用过List,但是只能更新一次,当绑定值第二次改变时,程序就会报错。

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Windows;
 6 using System.Windows.Controls;
 7 using System.Windows.Data;
 8 using System.Windows.Documents;
 9 using System.Windows.Input;
10 using System.Windows.Media;
11 using System.Windows.Media.Imaging;
12 using System.Windows.Navigation;
13 using System.Windows.Shapes;
14 using TESTBind.Models;
15 using System.Collections.ObjectModel;
16 
17 namespace TESTBind
18 {
19     /// <summary>
20     /// MainWindow.xaml 的交互逻辑
21     /// </summary>
22     public partial class MainWindow : Window
23     {
24         public MainWindow()
25         {
26             InitializeComponent();
27             Init();
28         }
29         private void Init()
30         {
31             listNum = 1;
32             testList = new List<string>();          
33             bindModel = new BindModel();
34             this.DataContext = bindModel;
35         }
36         private void button1_Click(object sender, RoutedEventArgs e)
37         {            
38             testList.Add("WPF界面绑定" + listNum);
39             bindModel.Test = new ObservableCollection<string>(testList);
40             listNum++;
41         }
42         private int listNum; 
43         private List<string> testList;
44         private BindModel bindModel;
45         
46         private void button2_Click(object sender, RoutedEventArgs e)
47         {
48             testList.Clear();
49             bindModel.Test = new ObservableCollection<string>(testList);
50             listNum = 1;
51         }
52     }
53 }
View Code

 

WPF入门(一)——绑定Binding

标签:

原文地址:http://www.cnblogs.com/jwxjjh/p/5700619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!