odpowiedź Nigela jest wielki. Właśnie dodałem niektóre załączone właściwości do WinRT XAML Toolkit, które powinny ułatwić wykonywanie tego, jeśli wypełniasz swój GridView przy użyciu powiązania właściwości ItemsSource.
Dla mnie zwykłym sposobem modyfikacji właściwości GridViewItem było użycie właściwości GridView.ItemContainerStyle. Korzystając z tej metody, należy określić właściwość IsEnabled za pomocą stylów i stylów, które nie obsługują powiązań w WinRT. Używanie ItemContainerStyleSelector może być jednym ze sposobów, ale wymaga zdefiniowania niestandardowej klasy.
Stworzyłem GridViewItemExtensions class z własności IsEnabled, które można ustawić na każdej kontroli w swojej GridView.ItemTemplate jak ten:
xmlns:xyzc="using:Xyzzer.WinRT.Controls"
xyzc:GridViewItemExtensions.IsEnabled="{Binding IsEnabled}"
Obiekt zachowanie znalezienie GridViewItem w swoich przodkach drzew i wizualny zachowując wartość IsEnabled zsynchronizowaną z ustawieniem GridViewItemExtensions.IsEnabled na jego potomku.
Następnie, jak powiedział Nigel - nadal trzeba wyodrębnić szablon z GridViewItem i zmodyfikować go tak, aby wyłączone elementy nie wyglądały na nie na miejscu.
Wydaje się, że jest z tym błąd. http://www.simonferquel.net/blog/archive/2012/03/14/windows-8--xaml-petit-bug-sur-itemscontrol-et-workaround.aspx – Michael
Odniosłem sukces w modyfikacji pojemników styl także używając DataTemplateSelector, trochę hackowania, ale już używałem DTS, więc zabiłem dwie ptaki jednym kamieniem. Zaktualizowałem swoją odpowiedź tym kodem. –
Co się stanie, jeśli chcę, aby wszystkie elementy były klikalne i przedstawiać zaznaczenie niektórych z nich? Czy istnieje alternatywa? – oXeNoN