WpfToolkit DataGrid does not work on Windows Phone 7

I am trying to use WpfToolkit DataGrid on a Windows Phone 7 project (Silverligt 4) and it does not work. Here is the XAML:

 <UserControl x:Class="SilverlightControls.Grid" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:wtk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" d:DesignHeight="480" d:DesignWidth="480"> <Grid x:Name="LayoutRoot" Background="#FF1F1F1F" Width="960"> <Grid x:Name="TitleGrid"> <TextBlock Text="{Binding Title}" Style="{StaticResource PhoneTextPageTitle2Style}"/> </Grid> <wtk:DataGrid> </wtk:DataGrid> </Grid> </UserControl> 

The project compiles fine, but a run-time failure tries to load this control. The best key I've received so far is Visual Studio Designer. As soon as I add wtk:DataGrid to the control, the visual constructor does not load, and below is the exception that it displays.

Maybe WpfToolkit relies on PresentationFramework.dll and is not available in SL4?

  System.Reflection.Adds.UnresolvedAssemblyException
 Type universe cannot resolve assembly: PresentationFramework, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35.
    at System.Reflection.Adds.AssemblyProxy.GetResolvedAssembly ()
    at System.Reflection.Adds.AssemblyProxy.get_FullName ()
    at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.PrepareAttributes (Reflectable`1 reflectableAssembly)
    at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.PrepareAttributes (Reflectable`1 reflectableType)
    at MS.Internal.Metadata.ClrType.GetAttributes [T] (ReflectionMetadataContext context, IReflectable`1 member, ITypeMetadata attributeType, Boolean merge, AttributeMergeCache & cache)
    at MS.Internal.Metadata.ClrMember`1.GetLocalAttributes (ITypeMetadata attributeType)
    at MS.Internal.Design.Metadata.Xaml.XamlType.GetSpecialProperty (Int32 idx, PropertyIdentifier pid)
    at MS.Internal.Design.Metadata.Xaml.XamlType.get_ContentProperty ()
    at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensionImplementations.GetContentProperty (ITypeMetadata sourceType)
    at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensions.GetContentProperty (ITypeMetadata source)
    at MS.Internal.Design.Metadata.ReflectionTypeNode.get_ContentProperty ()
    at MS.Internal.Design.Markup.XmlElement.CalcChildWhitespaceImportant (XamlElement element)
    at MS.Internal.Design.Markup.XmlElement.ConvertChildrenToXaml (XamlElement result, PrefixScope scope, IParseContext context, IMarkupSourceProvider provider, Boolean childrenAsString)
    at MS.Internal.Design.Markup.XmlElement.ConvertToXaml (XamlElement parent, PrefixScope parentScope, IParseContext context, IMarkupSourceProvider provider)
    at MS.Internal.Design.Markup.XmlElement.ConvertChildrenToXaml (XamlElement result, PrefixScope scope, IParseContext context, IMarkupSourceProvider provider, Boolean childrenAsString)
    at MS.Internal.Design.Markup.XmlElement.ConvertToXaml (XamlElement parent, PrefixScope parentScope, IParseContext context, IMarkupSourceProvider provider)
    at MS.Internal.Design.DocumentModel.DocumentTrees.Markup.XamlSourceDocument.ParseElementFromSkeleton (XamlParseContext context, SkeletonNode node, XamlElement parent, Boolean fullElement)
    at MS.Internal.Design.DocumentModel.DocumentTrees.Markup.XamlSourceDocument.UpdateSkeleton (IDamageListener listener)
    at Microsoft.Windows.Design.DocumentModel.Trees.MarkupDocumentTreeManager.Update ()
    at Microsoft.Windows.Design.DocumentModel.MarkupProducer.Update ()
    at Microsoft.Windows.Design.DocumentModel.MarkupProducer.HandleMessage (DocumentTreeCoordinator sender, MessageKey key, MessageArguments args)
    at Microsoft.Windows.Design.DocumentModel.MarkupProducer.Microsoft.Windows.Design.DocumentModel.IDocumentTreeConsumer.HandleMessage (DocumentTreeCoordinator sender, MessageKey key, MessageArguments args)
    at Microsoft.Windows.Design.DocumentModel.DocumentTreeCoordinator.SendMessage [T] (MessageKey`1 key, T args, Boolean isPrivateMessage)
    at Microsoft.Windows.Design.DocumentModel.DocumentTreeCoordinator.QueuedMessage`1.Microsoft.Windows.Design.DocumentModel.IQueuedMessage.Invoke ()
    at Microsoft.Windows.Design.DocumentModel.DocumentTreeCoordinator.ProcessQueuedMessages (Object state)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall (Delegate callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

+4
source share
1 answer

It’s just that when I was about to post this question, auto-executing StackOverflow tags showed that there is a Silverlight Toolkit . Clearly, this is what I should use.

Since I put all this effort into the question, I will leave the question and answer as a witness for the awesomeness of StackOverflow in the answering machine to my question.

EDIT You need the Silverlight 3 Toolkit to use the DataGrid. You need to add these four links to the project:

  • System.ComponentModel.DataAnnotations.dll
  • System.Windows.Controls.Data.dll
  • System.Windows.Controls.Data.Input.dll
  • System.Windows.Data.dll
+3
source

Source: https://habr.com/ru/post/1304859/


All Articles