【求助】WPF,如何将一组用户控件中,赋值有变化的控件名和变化后的值存入集合,在点击确定时统一校验并保存

aresskyaressky 2014-08-15 05:48:17

问题好难
昨天在duanzi_pengForty2的帮助下解决了,应用程序的“设置(选项)”窗体中右侧的设置区域内容的问题http://bbs.csdn.net/topics/390858637?page=1#post-397989704,即选择左侧ListBox/ListView/Treeview的子项,右侧Contentcontrl随选择出现对应的一组控件或用户控件。

现在的问题是
如何将用户控件中值有变化的控件控件名称和变化后的值保存到一个集合或多个集合,如何在点击确定(保存)按钮后读取这个或这些集合,并将有变化的值进行校验或存入数据库或文件。

比如用户控件1是一组3个RaddioButton,用户控件2是三个文本框,这两个用户控件并不是同时出现在窗体上的,是根据用户点击左侧的菜单后对应出现。如果用户改变了RaddioButton的选项,并改了其中一个文本框的值,如何将这些变化反应到一个集合中,在后续操作中读取到这些变化并保存到数据库或文件,没有变化的两个文本框的值不更新保存
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aresskyaressky 2014-08-23
  • 打赏
  • 举报
回复
不用FirePropertyChanged的会出现一切换控件就回复原值的现象,所以使用下面的类调用窗口中的一个函数向集合里写入预保存的信息。 最后这样搞定的

public class SettingBase : INotifyPropertyChanged
    {
        public virtual string Name { get; set; }

        public event PropertyChangedEventHandler PropertyChanged = delegate { };

        protected void FirePropertyChanged(int Type, string propertyName, string ContentString = "", int ContentInt = 0, double ContentDouble = 0, string ContentDate = "", bool ContentBool = false)
        {
            //Type 1 string 2int 3double 4date 5bool
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            
            //向预保存集合中添加新的预保存值
            Options.PreSaveSettings(Type,propertyName,ContentString,ContentInt,ContentDouble,ContentDate,ContentBool);
            //MessageBox.Show(propertyName.ToString());
            //MessageBox.Show(Options._settingNeedToSaveList[0].FieldName.ToString());
        }
    }
exception92 2014-08-15
  • 打赏
  • 举报
回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧