18
Biorąc instancją klasy ThisClassShouldBeTheDataContext jako DataContext dla widokuJak można wiązać indeksowanego właściwość do kontroli w 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;}
}
Jak mogę powiązać Contact["John"].PhoneNumber
do pola tekstowego?
<TextBox Text="{Binding ?????}" />
Co jeśli indeks nie jest ciągiem znaków, czy to z innego mienia z VM, powiedzmy {Binding Kontakt [ThisIsAnotherPropertyFromTheVm] .PhoneNumber }. Jak mogę to zrobić? – Lance
Minęły lata odkąd zadałem pytanie w komentarzu, kiedy zaczynałem używać WPF, teraz mam zamiar na nie odpowiedzieć. Myślę, że najlepszym sposobem, aby to zrobić, nie jest powiązanie z indeksowaną właściwością. Po prostu wyeksponuj inną właściwość, w której pobierający zwróci indeksowaną właściwość (tzn. Kontakty [ThisIsAnotherPropertyFromTheVm] .Numer telefonu) – Lance
Łącze jest zepsute –