您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!

WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!

来源:网络整理     时间:2016/6/9 21:36:58     关键词:listview

关于网友提出的“WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!”问题疑问,本网通过在网上对“WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!
描述:

WPF绑定更新

试过Mode=TwoWay不行,试过网上的FirePropertyChanged也没成功。


                    
                    
                    
                
            
        


listview1.ItemsSource = _settingNeedToSaveList;
public class SettingNeedToSaveList 
        {
            public int Type { set; get; }   //保存数据的类型1string 2int 3double 4date 5bool
            public string FieldName { set; get; }   //保存数据的字段名称
            public string ContentString { set; get; }   //保存数据的字段名称
            public int ContentInt { set; get; }  //保存数据的int内容,没有为0
            public double ContentDouble { set; get; }  //保存数据的double内容,没有为0
            public string ContentDate { set; get; }  //保存数据的date内容,没有为空
            public bool ContentBool { set; get; }  //保存数据的date内容,没有为空
                 
        }
        public static ObservableCollection _settingNeedToSaveList = new ObservableCollection();

另外在XAML中怎么绑定到这个集合,ItemsSource="{Binding _settingNeedToSaveList}"这个行不通,是不是只能将LISTVIEW的上层的DataContest设置成_settingNeedToSaveList。有的项目就能绑定上,有的就不行不知道为什么。
解决方案1:

看看这个INotifyPropertyChanged
如果MyData集合中的数据类型是一个类MyInfo
那MyInfo要
实现这个函数
protected void OnPropertyChanged(string info)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(info));
            }
        }
在某个属性改变时调用
如:public int Volume
        {
            get { return _iVolume; }
            set { _iVolume = (int)value; OnPropertyChanged("Volume"); }
        }

解决方案2:

单独 创建一个类(DataManage),用于加载你的数据,并声明ObservableCollection 集合


 private ObservableCollection myData = new ObservableCollection();
        public ObservableCollection MyData
        {
            get { return myData; }
            set { 
                myData = value;
            }
        }

在xaml后台,指定它的this.DataContext = dataManage;     赋值之前 DataManage要实例化。
指定ListView的ItemsSource   

ItemsSource="{Binding MyData}"

测试试试
以上介绍了“WPF C# ListView绑定集合后,集合新增行,ListView变化,更改无变化求解!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1612592.html

相关图片

相关文章