许多人必须多次解决这个问题,但经过几个小时的研究后,我仍然无法找到我想要的东西。
我所拥有的是ExportSettings.settings
文件,其中包含一系列设置(bool,字符串,整数等),我想为它们创建一个View。为了做到这一点,我创建了一个简单的窗口,我在其中放置了OK
,Cancel
和Close
标准按钮,并将它们链接到{{1允许用户使用Enter / Escape接受/取消的事件。
我已在XAML中为我的设置创建了所需的KeyDown
,Checkbox
等。当ExportSettingsView类启动时,在其构造函数中,我读取了我的设置并为每个控件分配值。在过去我直接绑定它们但是无法取消更改,所以我放弃了它。当用户点击TextBox
按钮时,我再次为每个设置分配代码隐藏每个值。如果他点击OK
没有完成任务,窗口就会关闭。
对于我的设置,我想要像EditableObject这样的东西,以避免这种丑陋的方式来制作我的SettingsView。
我正在寻找的一些事情是:
答案 0 :(得分:3)
将问题分解为部分以使用MVVM,创建窗口并将其绑定到另一个类(ViewModel),此类将具有反映设置文件中数据的属性。这个类还必须实现INotifyPropertyChanged。如果你愿意,它也可以实现EditableObject,但坦率地说它不需要。
将你的按钮挂到VeiwModel上的命令,这样当用户点击保存时,它会将其属性写入设置文件。
在这种情况下:
这将允许您取消更改,只是在用户点击取消时不写入您的设置文件。
最重要的一点是你不能直接绑定到你的属性设置。
如果你想为视图自动生成字段,你必须使用属性网格,但是使用MVVM,你的视图与你的模型分离,所以从文本框等变为属性网格很容易。
当你搜索MVVM时,不要被使用大量术语的人所迷惑,MVVM是一个非常简单的概念,它归结为三个类,你的View(xaml),View Model(视图绑定到的是什么) )和模型(你的数据),就是这样!祝你好运
答案 1 :(得分:-1)
我认为你需要这样的东西http://wpfdataform.codeplex.com/ 如果您使用ReSharper,您可以轻松为您的设置生成包装类
答案 2 :(得分:-2)
.NET已经支持用于保存应用程序和用户变量的非常好的工具。 http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx 它必须明确保存,以便它可能非常适合您。您可以检查变量的类型并创建合适的控件。