Metro.Dialogs mit VB.NET

  • VB.NET

    Metro.Dialogs mit VB.NET

    Hi,

    ich entwickle meine Anwendungen mit WPF und VB.NET.

    Metro-Design ist zur Zeit voll in, meine Kunden fahren drauf ab. Das Design für Controls usw. gibt es ja schön bei MahApps. Jetzt sollen auch die Dialoge in Metro glänzen. Also google und los...
    Gefunden habe ich das:
    github.com/ErwinCat/Metro.Dialogs

    Was mir mittlerweile Kopfschmerzen bereitet, ist das implementieren in mein VB.NET Projekt.

    Die Beispielklasse sieht so aus:

    Quellcode

    1. using System;
    2. using System.ComponentModel.Composition;
    3. using System.Reactive.Linq;
    4. using Caliburn.Micro;
    5. using Metro.Dialogs.Controls;
    6. namespace Metro.Dialogs.Example
    7. {
    8. [Export(typeof (IShell))]
    9. public class ShellViewModel : Screen, IShell
    10. {
    11. private readonly IWindowsDialogs _windowsDialogs;
    12. private bool _isBusy;
    13. private double _busyProgress;
    14. [ImportingConstructor]
    15. public ShellViewModel(IWindowsDialogs windowsDialogs)
    16. {
    17. _windowsDialogs = windowsDialogs;
    18. InitBreadcrumbs();
    19. }
    20. //...
    21. // ganz viel (unproblematischer Code...
    22. //...
    23. }
    24. public interface IShell
    25. {
    26. }
    27. }


    Mit Interfaces habe ich noch nix zu tun gehabt, wahrscheinlich macht mir das ganze deshalb soooooooooo viele Probleme.

    Also das habe ich (bisher):

    Quellcode

    1. Imports System.Collections.ObjectModel
    2. Imports SKSE.Dialogs.Wpf
    3. Imports System.ComponentModel
    4. Imports System.Windows.Automation.Peers
    5. Imports System.Windows.Automation.Provider
    6. Imports Caliburn.Micro
    7. Imports System
    8. Imports Metro.Dialogs
    9. Imports System.ComponentModel.Composition
    10. Imports System.Reactive.Linq
    11. Imports Metro.Dialogs.Controls
    12. <Export(GetType(IShell))>
    13. Public Class MainWindow
    14. Implements IShell
    15. Private ReadOnly _windowsDialogs As IWindowsDialogs
    16. Public Sub New()
    17. InitializeComponent()
    18. End Sub
    19. <ImportingConstructor()>
    20. Public Sub New(windowsDialogs As IWindowsDialogs)
    21. InitializeComponent()
    22. _windowsDialogs = windowsDialogs
    23. End Sub
    24. '...
    25. '...
    26. '...
    27. End Class
    28. Public Interface IShell
    29. End Interface


    Leider wird "Public Sub New(windowsDialogs As IWindowsDialogs)" nie durchlaufen und "_windowsDialogs " bleibt nothing...

    Der Konstruktor sollte eigentlich anstatt des Standard-Konstruktors durchlaufen werden, zumindest entnehme ich das dieser Internetseite:
    msdn.microsoft.com/de-de/libr...rt_inheritance

    Da steht ein kleines Beispiel:

    Quellcode

    1. Public Class MyExportClass
    2. 'This one will match
    3. <Export("MajorRevision")>
    4. Public ReadOnly Property MajorRevision As Integer
    5. Get
    6. Return 4
    7. End Get
    8. End Property
    9. <Export("MinorRevision")>
    10. Public ReadOnly Property MinorRevision As Integer
    11. Get
    12. Return 16
    13. End Get
    14. End Property
    15. End Class


    Bei meinem Programm wird allerdings der Standard-Konstruktor durchlaufen.

    Leider habe ich momentan keinen Plan, ob ich überhaupt auf dem richtigen Weg bin... ?( ?( ?(