18
Dada una instancia de la clase ThisClassShouldBeTheDataContext como el DataContext para la vista¿Cómo se puede obligar a una propiedad indexada a un control en WPF
class ThisClassShouldBeTheDataContext
{
public Contacts Contacts {get;set;}
}
class Contacts
{
public IEnumerable<Person> Persons {get;set;}
public Person this[string Name]
{
get
{
var p = from i in Persons where i.Name = Name select i;
return p.First();
}
}
}
class Person
{
public string Name {get;set;}
public string PhoneNumber {get;set;}
}
¿Cómo se puede unir I Contact["John"].PhoneNumber
a un cuadro de texto?
<TextBox Text="{Binding ?????}" />
¿Qué pasa si mi índice no es una cadena, o es de otra propiedad de la VM, dicen {Binding Contactos [ThisIsAnotherPropertyFromTheVm] .PhoneNumber }. ¿Cómo puedo hacer eso? – Lance
Han pasado años desde que hice la pregunta en el comentario cuando comencé a usar WPF, ahora voy a responderla. Creo que la mejor manera de hacerlo es no vincularse a una propiedad indexada. Simplemente exponer otra propiedad donde el getter devolverá la propiedad indexada (es decir, contactos [ThisIsAnotherPropertyFromTheVm] .PhoneNumber) – Lance
El enlace está roto –