binding datatemplate uwp designer xbind

binding - x: problemas de Bind Design Time



datatemplate uwp (1)

Para esta versión actual, prefiere Encuadernación sobre x: Enlazar

una respuesta de un ingeniero de Microsoft

Tengo los mismos problemas que tú, además de un montón de errores al usar x: Vincular en tiempo de diseño. La forma más rápida de corregirlo: usa el enlace como antes. Y cuando suelte, si el rendimiento está bajo consideración, cambie la vinculación a x: Vincular

Estoy tratando de construir mi aplicación UWP y actualmente estoy atascado con las excepciones de diseñador cuando trato de usar DataTemplate con x: Bind en un diccionario de recursos.

Creé un Diccionario de recursos "ItemTemplates.xaml" con un código subyacente (para garantizar la inicialización de x: Bind). El archivo contiene solo una plantilla:

<DataTemplate x:Key="HomeViewCategoryListItemTemplate" x:DataType="models:Category"> <Button Background="#88333333" Height="110" VerticalContentAlignment="Top" Padding="10" HorizontalAlignment="Stretch"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock FontWeight="Light" HorizontalAlignment="Center" Text="{x:Bind Name}" FontSize="{ThemeResource TextStyleExtraLargeFontSize}" /> <TextBlock Foreground="{ThemeResource ToolTipForegroundThemeBrush}" HorizontalAlignment="Center" Margin="0,10,0,0" Text="{x:Bind Description}" Grid.Row="1" TextAlignment="Center" TextWrapping="Wrap" /> </Grid> </Button> </DataTemplate>

Luego agregué este diccionario de recursos a App.xaml de esta manera:

<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///Resources/Core.xaml" /> <resources:ItemTemplates /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources>

Ahora el proyecto no se puede usar, porque el diseñador arroja raras excepciones, pero cuando Limpio y Reconstruyo el proyecto y navego a la página HomeView.xaml, el diseñador muestra solo los elementos "ToString ()" predeterminados (básicamente la vista de lista contiene solo tres veces) el texto "Models.Categories") en la propiedad ListView y ItemTemplate de ListView está subrayado y muestra el siguiente error:

The resource "HomeViewCategoryListItemTemplate" could not be resolved.

Cuando vuelvo a App.xaml, veo otro subrayado allí (de la línea <resources:ItemTemplates /> ) que dice:

The property ''DataType'' was not found in type ''DataTemplate''.

Ambos errores no son sensuales, porque cuando realmente ejecuto la aplicación, no hay problemas y todo funciona perfectamente. La única solución que he encontrado hasta ahora es incluir el ResourceDictionary dos veces, tanto de forma clásica como "compilada":

<ResourceDictionary Source="ItemTemplates.xaml" /> <resoures:ItemTemplates />

Esta solución funciona y todo funciona tanto en tiempo de diseño como en tiempo de ejecución, pero realmente creo que es bastante complicado y tiene que haber un enfoque mejor y más seguro o me falta algo trivial.

Estoy ejecutando la actualización 1 de Visual Studio 2015 y tengo instalado el último SDK de UWP. El proyecto se dirige a la compilación 10240.

Editar: otra excepción que el diseñador arroja muy a menudo y se cuelga por completo:

Unable to cast object of type ''System.String'' to type ''Models.Data.Categories.Category''.

De acuerdo con la salida de StackTrace esto sucede dentro del código ItemTemplates.xaml.cs, específicamente el método generado ProcessBindings . Una vez más, el proyecto aún se compila y se ejecuta normalmente, pero el diseñador ni siquiera se molesta en intentar mostrar el resultado.