W jaki sposób zserialozować obiekt klasy, który posiada w sobie obiekt daty i obiekt innej klasy? Z typami referencyjnymi jest problem, bo zapisywanie typów prostych do xml i odczytywanie ich mi normalnie działa. Korzystam z takiej klasy pomocniczej:

internal static class ObjectSerializer<T>
    {
        public static string ToXml(T value)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            StringBuilder stringBuilder = new StringBuilder();
            XmlWriterSettings settings = new XmlWriterSettings()
            {
                Indent = true,
                OmitXmlDeclaration = true,
            };

            using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder, settings))
            {
                serializer.Serialize(xmlWriter, value);
            }
            return stringBuilder.ToString();
        }

        // Deserialize from xml
        public static T FromXml(string xml)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            T value;
            using (StringReader stringReader = new StringReader(xml))
            {
                object deserialized = serializer.Deserialize(stringReader);
                value = (T)deserialized;
            }

            return value;
        }
    } 

Funkcja zapisu wygląda tak, odczyt analogiczny:

protected async override void SaveState(Dictionary<String, Object> pageState)
        {
            try
            {
                string localDataRachunki = ObjectSerializer<ObservableCollection<Rachunek>>.ToXml(MainPage.Rachunki);
                
                if (!string.IsNullOrEmpty(localDataRachunki))
                {
                    StorageFile localFileRachunki = await ApplicationData.Current.LocalFolder.CreateFileAsync("localDataRachunki.xml", CreationCollisionOption.ReplaceExisting);
                   
                    await FileIO.WriteTextAsync(localFileRachunki, localDataRachunki);
                   
                }
            }
            catch (Exception ex)
            {

            }
           
        }