Monthly Archives: Marzec 2013

Exam 70-511: Windows Applications Development with Microsoft .NET Framework 4

2013-03-27

Od kilku dni przygotowywałem się do egzaminu 70-511, a dzisiejsze podejście do niego zakończyło się wynikiem 972 punkty :). Na 55 pytań jedynie kilka dotyczyło WinForms, pozostałe to WPF i język XAML. Było też kilka pytań odnośnie tworzenia instalatorów oraz wdrażania aplikacji. W sumie egzamin oceniam jako dosyć łatwy, jeżeli ktoś zna WPF to nie powinien mieć problemów z większością pytań. Duży nacisk położony jest na takie zagadnienia jak zasoby, style, szablony, triggery, konwertery, binding. Kolejne wyzwanie to MCSA: SQL Server 2012.

Reklamy

WPF – odwołanie do CollectionView.CurrentItem w kodzie XAML

2013-03-25

Podczas korzystania z obiektu CollectionView w widoku, oprócz samej prezentacji kolekcji często mamy także dodatkowe kontrolki powiązane z właściwościami aktualnie wybranego elementu. Standardowym podejściem przy realizacji tego zadania jest utworzenie w klasie ViewModel właściwości udostępniającej aktualnie wybrany element kolekcji, a następnie zdefiniowanie w kontrolkach wiązań do interesujących nas właściwości tego elementu:

ViewModel:

public ICollectionView Persons
{
	get { return persons; }
}

public Person SelectedPerson
{
	get { return Persons.CurrentItem as Person; }
}

View:

<TextBox Text="{Binding SelectedPerson.LastName}" IsReadOnly="True" />

Istnieje jednak prostsza metoda, możemy odwołać się do właściwości CollectionView.CurrentItem bezpośrednio w kodzie XAML. Służy do tego znak slash „/”:

<TextBox Text="{Binding Persons/LastName}" IsReadOnly="True" />

Zastosowanie wyrażenia Persons/LastName oznacza odwołanie do właściwości LastName aktualnie wybranego elementu kolekcji Persons. Po tej modyfikacji właściwość SelectedPerson w klasie ViewModel jest zbędna.

Więcej informacji można znaleźć na MSDN: Binding.Path Property.