2010-04-05 5 views
1

Я разрабатываю часть функциональности приложения. У меня есть объект привязки данных «А» и другой объект «В».C#. Объект привязки к объекту

public class SomeProxy 
{  
    public SomeProxy(BindingSource A) 
    {   
     var b = new B(A.SomeProperty);   
    } 
} 

public class B 
{ 
    public B(List<T> somePropertyFromA) 
    { 
     SomePropertyFromA = somePropertyFromA; 
    } 

    public int SomePropertyFromA{get;set;} 

    //Some autocalculated propeties, that are based on SomePropertyFromA 

    //I want to reculculate them, when the SomePropertyFromA will be changed 
} 

Объект 'B' вычисляет некоторые значения на основе свойства 'a' объекта 'A'. Я хочу связать свойство в объекте 'B' с тем же свойством 'a' в 'A'. Необходимо обработать изменения свойства «a», поскольку некоторые элементы управления пользовательского интерфейса привязаны к свойствам «B». Как я могу это сделать?

Извините за какую-то странность. Спасибо

+1

Ваш вопрос непонятен. Как вы делаете привязку? Что такое «объект привязки данных»? Это поможет, если вы разместите какой-то код. –

+0

Извините, я постарался задать этот вопрос более ясным. – w1z

+0

Если вы связываете объекты вместе. Проверьте Automapper (http://automapper.codeplex.com/Wikipage). Он поддерживает привязку свойств одного объекта к методам или выбранному вами методу на основе данных другого объекта. поэтому a.GetTotal() может быть установлен в b.Относки и гораздо более сложные сценарии. – Jab

ответ

1

Вы хотите иметь двунаправленную ссылку?

Оба А и В могут иметь свойства, которые указывают друг на друга. Просто не забудьте создать объект B-outside-of A, чтобы вы могли делать инъекцию зависимостей. порядок вещей должен быть:

B objectB = new B(); 
A objectA = new A(objectB); 

Основное правило: не создавать объекты в конструкторах.

+0

Yeap .. Я понял, что я не могу полностью задать этот вопрос. – w1z

Смежные вопросы