سؤال

هل من الممكن أن تستمر التحكم WPF، أو أي كائن آخر غير تافهة إلى ملف .settings * في تطبيق. NET؟ وأنا أحسب هذا من شأنه أن يكون سهلا لأن ملف .settings * يتيح لي الفرصة لتحديد نوع atrbitrary عن كل الإعدادات الفردية، لسوء الحظ، فإنه لا يبدو أنها تعمل بالنسبة لي.

ما أحاول القيام به هو أن تستمر في System.Windows.Controls.ListBox إلى ملف .settings * التطبيق الخاص بي. هو، لا في الواقع يتم حفظ مشكلة المثال مربع القائمة بلدي. عندما أذهب إلى تشغيل طلبي مرة أخرى، انها مجرد <م> اغية عندما أذهب إلى تحميله.

وهنا هو ما أستخدمه لتحميل / حفظ المثال مربع القائمة بلدي

    private void PersistListBoxToSettings(System.Windows.Controls.ListBox projectsListBox)
    {
        Properties.Settings.Default.ListBoxData = projectsListBox;
        Properties.Settings.Default.Save();
    }

    private void LoadProjectListBox()
    {
        projectsListBox = Properties.Settings.Default.ListBoxData; // Always null after application restart.
    }

واختبرت بلدي * ملف .settings للتأكد من أنه تم حتى العمل عن طريق توفير / تحميل سلسلة بسيطة - أن تعمل كما هو متوقع.

هل ما أحاول القيام به مجرد فكرة سيئة حقا؟ يجب أن أتوقف تحاول أن تكون ذكية واستخدام التسلسل الكائن الصحيح إلى القرص؟

هل كانت مفيدة؟

المحلول

واعتقادي هو أن الكائنات التي تقوم بحفظ إلى ملف .settings يجب أن يكون للتسلسل وتنفيذ ISerializable. أشك في أن الضوابط قد نفذت هذا. يبدو هذا الرابط لعمل نسخة احتياطية أفكاري:

Bytes.com المنتدى

وكنت قد تكون قادرة على تقديم مجمع لحفظه، تنفيذ ISerializable واستخدام [SettingsSerializeAs (SettingsSerializeAs.Binary)]، والاقتراحات رابط للالتفاف حول هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top