关于网友提出的“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