18
Compte tenu d'une instance de la classe ThisClassShouldBeTheDataContext comme DataContext pour la vueComment pouvez-vous lier une propriété indexée à un contrôle 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;}
}
Comment puis-je lier Contact["John"].PhoneNumber
à une zone de texte?
<TextBox Text="{Binding ?????}" />
Que faire si mon index n'est pas une chaîne, ou il est d'une autre propriété de la vm, disent {Binding Contacts [ThisIsAnotherPropertyFromTheVm] .PhoneNumber } Comment puis je faire ça? – Lance
Cela fait des années que j'ai posé la question dans le commentaire quand j'ai commencé à utiliser WPF, maintenant je vais y répondre. Je pense que la meilleure façon de le faire est de ne pas lier à une propriété indexée. Exposer juste une autre propriété où le getter retournera la propriété indexée (c'est-à-dire les contacts [ThisIsAnotherPropertyFromTheVm] .PhoneNumber) – Lance
Le lien est cassé –