C# DesignInstance wirft (instant) OutOfMemoryException

holy

Lieutenant
Registriert
Aug. 2008
Beiträge
534
Bin imo etwa angenervt und habe weder Lust noch Zeit mich mit meinem VS bzw. Blend zu streiten ;)

Folgendes Szenario

Code:
<common:LayoutAwarePage
    ...
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:dtd="using:DirtySharp.Orpheus.DesignTimeData"
    d:DataContext="{d:DesignInstance Type=dtd:DesignTimeModel, IsDesignTimeCreatable=True}"
    mc:Ignorable="d">

    <Grid Background={Binding Path=CurrentTheme[AppBG]} />

</common:LayoutAwarePage>

Code:
namespace DirtySharp.Orpheus.DesignTimeData
{
    using System;
    using Windows.UI.Xaml;

    internal class DesignTimeModel
    {
        public DesignTimeModel()
        {
            Uri lightUri = new Uri( "ms-appx:///Theming/Themes/DefaultLight.xaml" );
            CurrentTheme = new ResourceDictionary {Source = lightUri};
        }

        public ResourceDictionary CurrentTheme { get; private set; }
    }
}

Das ResourceDictionary:
Code:
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <LinearGradientBrush x:Key="AppBG" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FF99A8B8"/>
        <GradientStop Color="White" Offset="0.215"/>
        <GradientStop Color="#FFC5C5C5" Offset="0.7"/>
        <GradientStop Color="White" Offset="1"/>
    </LinearGradientBrush>
</ResourceDictionary>

Das DesignTimeModel ist notwendig, da mein reguläres ViewModel die entsprechenden Properties zur DesignTime nicht zur Verfügung stellt/stellen kann.

Wie auch immer. Ich sehe da keinen Fehler. Es hat in gefüllten 1000 Projekten vorher immer so funktioniert, doch nun gibt es eine nette OutOfMemoryException - "Insufficient memory to continue the execution of the program."

Hat jemand eine Idee, was da schief läuft? Zu Testzwecken habe im ResourceDictionary alles entfernt (bis auf den BG-Brush), ohne Erfolg.

Edit.
Die Exception tritt hier auf:
Code:
d:DataContext="{d:DesignInstance Type=dtd:DesignTimeModel, IsDesignTimeCreatable=True}"
 
Mal durchgesteppt?
Workspace gecleant und neu gebaut?
Läufts denn während dem Debuggen?

Warum überhaupt der Umweg über ein ViewModel? Binde doch direkt in die Ressourcen...
 
Erdmännchen schrieb:
Mal durchgesteppt?
Workspace gecleant und neu gebaut?
Läufts denn während dem Debuggen?

Warum überhaupt der Umweg über ein ViewModel? Binde doch direkt in die Ressourcen...

Durchsteppen ist nicht -> DesignTime... Ich will die Daten im Designer sehen. Hab das Projekt auch schon mehrmals gereinigt, neugebaut etc. Wenn ich den gleichen Code in ein anderes Projekt einfüge funktioniert es tadellos. Führ ich das Program aus, klappt es auch, nur eben nicht im Designer.

Das ganze ist Teil einer Themeengine, daher das ViewModel. StaticResources sind keine Option.
Ergänzung ()

Hab's eben "gelöst". Irgendwas war wohl mit der Resource-Datei nicht in Ordnung. Hab die grad vor Wut gelöscht und ein anderes Dictionary hergenommen und auf einmal geht es. Beiß gleich in die Tischplatte...
 
Zurück
Oben