Ich versuche, Hauptfenster nach erfolgreicher Anmeldung zu zeigen. Ich benutzte Schnittstelle als Parameter zum Konstruktor im Hauptfenster. Jetzt, wenn ich versuche, Hauptfenster zu zeigen, erhalte ich einen Fehler, weil ich Schnittstelle als Parameter zum Hauptfenster nicht übergeben kann. Ich sah viele Pfosten wie meins, aber ich dachte, dass es von ihnen ziemlich unterschiedlich ist.zeigt Formular mit Schnittstelle als Parameter zu einem Konstruktor WPF
Das ist mein Hauptfenster Konstruktor:
public Home_Page(IGetAllItemClass clas)
{
InitializeComponent();
_allClass = clas;
}
IGetAllItemClass _allClass;
Mein Code in Login-Fenster, von wo aus ich brauche Hauptform zu zeigen:
Home_Page h = new Home_Page();
h.ShowDialog();
Mein app.xaml:
<Application x:Class="Cafe_WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Cafe_WPF"
Startup="App_Startup">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="scroll_style.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Dies ist meine App.cs:
Das ist meine Schnittstelle:
namespace Cafe_WPF.Interface
{
public interface IGetAllItemClass
{
DataTable item_class(string business_info_id, string rvc_id);
}
}
Und meine Klasse Service Implementierung Schnittstelle ist:
class get_all_item_class : IGetAllItemClass
{
public DataTable item_class(string business_info_id, string rvc_id)
{
try
{
string sql = //query
return CafePOS.Library.DataAccessLayer.Instance.ExecuteQuery(sql);
}
catch (Exception ex)
{
throw ex;
}
}
}
I Abhängigkeit zu verwenden versuche injection.May sein, die ich bin etwas fehlt. Kann mir jemand dabei helfen? Ich stecke darauf fest.
Verwenden Sie Prism? –
@RandyLevy Sir, ich benutze Unity. Ich bin völlig neu zu WPF. –
Sind Sie sicher, dass es sich nicht um einen Fehler handelt 'var home = new UnityContainer(); container.RegisterType(); Home_Page hm = home.Resolve (); '? Ich meine, Sie erstellen "Home" -Container und versuchen dann, "Home_Page" mit einem anderen Container aufzulösen. Übrigens ist es sehr seltsam, dass Sie in Ihrem Fall zwei verschiedene Behälter verwenden. –