respuesta de Nigel es grande. Acabo de agregar algunas propiedades adjuntas al WinRT XAML Toolkit que deberían hacer que sea más fácil hacerlo si está completando su GridView utilizando el enlace de propiedad ItemsSource.
Para mí, la forma habitual de modificar las propiedades de GridViewItem era utilizar la propiedad GridView.ItemContainerStyle. Usando ese método necesitaría especificar la propiedad IsEnabled usando un estilo y los setters de estilo no son compatibles con los enlaces en WinRT. Usar ItemContainerStyleSelector puede ser de una sola manera, pero requiere definir una clase personalizada.
He creado una GridViewItemExtensions class con una propiedad IsEnabled que se puede establecer en cualquier control en su GridView.ItemTemplate así:
xmlns:xyzc="using:Xyzzer.WinRT.Controls"
xyzc:GridViewItemExtensions.IsEnabled="{Binding IsEnabled}"
La propiedad tiene un comportamiento de búsqueda de la GridViewItem en sus antepasados árbol visual y manteniendo su valor IsEnabled sincronizado con el valor GridViewItemExtensions.IsEnabled establecido en su descendiente.
Luego, como dijo Nigel, aún necesita extraer la plantilla de un GridViewItem y modificarla para que los elementos desactivados no queden fuera de lugar.
Parece que hay un error con eso. http://www.simonferquel.net/blog/archive/2012/03/14/windows-8--xaml-petit-bug-sur-itemscontrol-et-workaround.aspx – Michael
Tuve éxito modificando los contenedores estilo usando un DataTemplateSelector también, algo así como un hack, pero ya estaba usando el DTS, así que maté a dos pájaros de un tiro. He actualizado mi respuesta con ese código. –
¿Qué ocurre si deseo mantener todos los elementos en los que se puede hacer clic y presentar la selección en algunos de ellos? ¿Hay una alternativa? – oXeNoN