将自定义用户控件绑定到RegionContext的属性

时间:2015-02-19 17:13:45

标签: c# wpf mvvm prism-5

我正在学习Prism(第5版)框架,编写一份小型人力资源应用程序。

我的EmployeeSummaryView是一个简单的主要详细信息页面,它使用选项卡控件来更好地组织Person类型的属性。此选项卡控件具有Context Binding to CurrentEmployee的区域。

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime Birthday { get; set; }
    public string PhoneNumber { get; set; }
    public Address MailingAddress { get; set; }
    public Person EmergencyContact { get; set; }
}

我正在努力的地方是在“联系信息”选项卡上。在这里,我使用自定义用户控件来编辑邮件地址。我建立绑定的第一直觉是执行以下操作:

<local:EditAddressView DataContext="{Binding CurrentEmployee.MailingAddress}"/>

但是我越了解Prism和MVVM,它就越开始闻起来。

将自定义控件绑定到RegionContext上的属性是什么?

1 个答案:

答案 0 :(得分:0)

您通过绑定到模型而不是ViewModel来支持自己。使用ViewModel包装模型并将其绑定到那些模型。

public class PersonViewModel
{
    public PersonViewModel(Person person)
    {
       ...
       MailingAddress = new AddressViewModel(person.address);
    }

    public AddressViewModel MailingAddress { get; private set; }
}