Возможно ли получить Instance
элемента в рамках события CollectionChanged?CollectionChanged получить экземпляр объекта, который содержит коллекцию
Для примера:
public class Foo
{
public string Name { get; set; }
public ObservableCollection<Bar> Bars { get; set; }
public Foo()
{
Bars += HelperFoo.Bars_CollectionChanged;
}
}
public class Bar
{
public string Name { get; set; }
}
public static class HelperFoo
{
public static voic Bars_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
//sender is the collection Foo.Bars
//can I get the Instance of Foo?
}
}
(я не запомнил с помощью отражения)
Если это не будет возможно есть способ, чтобы получить экземпляр объекта, который intializes другой объект?
Для примера:
public class Foo
{
public string Name { get; set; }
public Foo()
{
var bar = new Bar(); //yes I know, I could write new Bar(this) and provide an overload for this
}
}
public class Bar
{
public string Name { get; set; }
public Bar()
{
//Get the Foo, since the constructor is called within Foo, is this possible?
//without providing an overload that takes an object, and just change it to `(new Bar(this))`
}
}
Вы продолжаете ссылаться на 'FooA', но ваш код не имеет' FooA'. Я предполагаю, что вы имеете в виду «Foo». Ваше именование сильно затрудняет это. 'Foo' и' Bar' сделают это более читаемым. –
Возможный дубликат [Как найти метод, называемый текущим методом?] (Http://stackoverflow.com/questions/171970/how-can-i-find-the-method-that-called-the-current -method) –
Не точный обман, но это позволит вам определить, кто вызвал ваш конструктор. –