Как сообщить, что пользовательское (добавленное) Расчетное свойство объекта сущности изменилось? - PullRequest
1 голос
/ 31 августа 2010

Во-первых, я прошу прощения за мой низкий уровень написания английского.

Я использую Entity Framework и привязку данных в проекте WPF MVVM.Я хотел бы знать, каков наилучший способ привязки данных к добавленному вычисляемому свойству EntityObject, которое генерируется с помощью Entity Framework.

Например:

partial class Person
{
    partial string Name...

    partial string Surname...

    public string FullName
    {
        get { return Name + Surname; }
    }
}

А потом в XAML что-то вроде ... Text = "{Binding FullName, Mode = Twoway}"

На данный момент мой графический интерфейсне знает, когда свойство FullName изменяется ... как я могу уведомить об этом?Я пытался с ReportPropertyChanged, но он возвращает ошибку ...

Кроме того, мне интересно, каков наилучший способ реализации привязки, когда одна привязка зависит от нескольких свойств ... вычисляемых свойств или преобразователей значений или что-то другое

Ответы [ 2 ]

1 голос
/ 01 сентября 2010

Вы можете подписаться на событие PropertyChanged в конструкторе и, если имя свойства совпадает с любым из двух свойств источника, вызвать событие для вычисляемого.

public Person()
{
    this.PropertyChanged += (o, e) =>
        {
            if (e.PropertyName == "Name" || e.PropertyName == "Surname") OnPropertyChanged("FullName");
        };
}
0 голосов
/ 31 августа 2010

Я не уверен, что вы ищете такую ​​вещь:

public string FullName
{
    get { return Name + Surname; }
    set 
    {
        // You should do some validation while and before splitting the value
        this.Name = value.Split(new []{' '})[0];
        this.Surname = value.Split(new []{' '})[1];
    }
}
...