具有数据绑定的C#/WPF中的OK/Cancel行为的对话框
在我的应用程序类中,我有一组对象,如下所示: (该集合位于App类中,因为我需要在不同的窗口中访问它的应用程序范围,等等) 现在我想创建一个对话框,用户可以在其中添加/删除/编辑具有众所周知的“确定/取消”按钮行为的人员。这东西容易放下吗?重要的一点是,具有数据绑定的C#/WPF中的OK/Cancel行为的对话框,c#,wpf,data-binding,C#,Wpf,Data Binding,在我的应用程序类中,我有一组对象,如下所示: (该集合位于App类中,因为我需要在不同的窗口中访问它的应用程序范围,等等) 现在我想创建一个对话框,用户可以在其中添加/删除/编辑具有众所周知的“确定/取消”按钮行为的人员。这东西容易放下吗?重要的一点是,组合框中的项目不得受用户在按OK之前所做更改的影响 提前谢谢 编辑:我想我应该指出,我不想编辑对话框中的特定人员,但整个人员列表都很简单。添加和删除操作非常简单,因为只有在单击“确定”时才会发生 对于编辑,您可以选择更多选项: 使Person实现
组合框
中的项目不得受用户在按OK之前所做更改的影响
提前谢谢
编辑:我想我应该指出,我不想编辑对话框中的特定人员,但整个人员列表都很简单。添加和删除操作非常简单,因为只有在单击“确定”时才会发生 对于编辑,您可以选择更多选项:
Person
实现IClonable
,传入您正在编辑的Person
的克隆副本以绑定到编辑表单上,然后在编辑完成后切换出Persons
集合中相应的Person
。这使得编辑表单不那么复杂,而且更加WPFey人员之间手动同步即可。至少是一个
Person
属性并绑定到其控件的属性,然后在完成时将Person
与表单属性同步public partial class App : Application
{
public ObservableCollection<Person> Persons { get; set; }
public App()
{
Persons = new ObservableCollection<Person>();
Persons.Add(new Person() { Name = "Tim", Age = 20 });
Persons.Add(new Person() { Name = "Sarah", Age = 30 });
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
<ComboBox ItemsSource="{Binding Source={x:Static Application.Current}, Path=Persons}" DisplayMemberPath="Name"/>