C# 在WPF应用程序中创建设置视图
这个问题肯定已经被很多人多次解决了,但是经过几个小时的研究,我仍然没有找到我想要的 我有一个C# 在WPF应用程序中创建设置视图,c#,wpf,settings,C#,Wpf,Settings,这个问题肯定已经被很多人多次解决了,但是经过几个小时的研究,我仍然没有找到我想要的 我有一个ExportSettings.settings文件,其中包含一组设置(bool、string、int等),我想为它们创建一个视图。为了做到这一点,我创建了一个简单的窗口,在其中我放置了标准按钮,如OK、Cancel和Close,并将它们链接到KeyDown事件,让用户使用Enter/Escape接受/取消 我已经在XAML中为我的设置创建了所需的复选框,文本框,等等。当ExportSettingsView
ExportSettings.settings
文件,其中包含一组设置(bool、string、int等),我想为它们创建一个视图。为了做到这一点,我创建了一个简单的窗口,在其中我放置了标准按钮,如OK
、Cancel
和Close
,并将它们链接到KeyDown
事件,让用户使用Enter/Escape接受/取消
我已经在XAML中为我的设置创建了所需的复选框
,文本框
,等等。当ExportSettingsView类启动时,我在其构造函数中读取设置并为每个控件分配值。过去我直接绑定它们,但这无法取消更改,所以我放弃了它。当用户单击OK
按钮时,我再次为每个设置分配每个值后面的代码。如果他单击Cancel
则不会完成任何分配,窗口将关闭
我想为我的设置使用类似EditableObject的东西,以避免用这种丑陋的方式查看设置
我正在寻找的一些东西是:
- 能够在我的设置中添加一些注释会很好(工具提示)
- 使用反射自动生成控件
- 避免创建自定义设置类(以及每次应用程序启动/关闭时保存和读取的工作)
- 窗户是你的视野
- 新类是您的ViewModel
- 设置文件是您的模型
- .NET已经支持非常好的工具来保存应用程序和用户变量。
它必须显式保存,这样它可能非常适合您。您可以检查变量的类型并创建合适的控件。我认为您需要这样的控件
如果使用ReSharper,您可以轻松地为设置生成包装类将问题分解为多个部分以使用MVVM,创建窗口并将其绑定到另一个类(ViewModel),该类上的属性将反映设置文件中的数据。此类还必须实现INotifyPropertyChanged。如果您愿意,它还可以实现EditableObject,但坦率地说,它不是必需的 将按钮连接到VeiwModel上的命令,这样当用户点击save时,它会将其属性写入设置文件 在这种情况下:
当您搜索MVVM时,不要被使用大量术语的人愚弄,MVVM是一个非常简单的概念,它可以归结为三个类:视图(xaml)、视图模型(视图绑定的对象)和模型(数据),就是这样!祝您好运这可能是一个起点:创建一个包含一组备份属性的视图模型类,根据设置的数量,该类不应超过一小时。使用属性网格如何?@pushpraj如果用户单击“取消”,属性网格中的更改是否可以恢复?默认情况下,否,控件失去焦点时,编辑将发送到绑定属性。但我认为我们可以欺骗它为我们做这件事。在我们选择相同之前,最重要的一点是外观。如果你心中有一些想要的图片,也许你也可以分享。我可以为您试一试吗?关于用户取消时不更新属性的可能性,您如何看待使用属性?此属性“仅当您调用UpdateSource方法时才更新绑定源”,因此您可以在
OK
上调用它,但不能在Cancel
上调用它。(顺便说一句,答案很好)(事实上,经过一番研究,我找到了一种很有前途的方法……)