我想在成功登錄後顯示主窗口。我使用interface作爲參數在主窗口中的構造函數。現在,當我嘗試顯示主窗口時,出現錯誤,因爲我無法將接口作爲參數傳遞給主窗口。我看到了很多類似於我的帖子,但我認爲它們與它們完全不同。顯示窗體包含接口作爲構造函數的參數WPF
這是我的主要窗口構造函數:
public Home_Page(IGetAllItemClass clas)
{
InitializeComponent();
_allClass = clas;
}
IGetAllItemClass _allClass;
我在登錄窗口代碼,我需要證明主要形式有:
Home_Page h = new Home_Page();
h.ShowDialog();
我的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>
這是我的App.cs:
public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{
#region login_dependencies
var container = new UnityContainer();
container.RegisterType<IGetIP, get_ip_address>();
container.RegisterType<IUserDetails, get_user_details>();
container.RegisterType<IgetBusinessDetailsFromPosId, get_business_info_from_pos>();
#endregion
#region home_page_dependencies
var home = new UnityContainer();
container.RegisterType<IGetAllItemClass, get_all_item_class>();
Home_Page hm = home.Resolve<Home_Page>();
#endregion
Login_Window lg = container.Resolve<Login_Window>();
lg.ShowDialog();
}
}
這是我的接口:
namespace Cafe_WPF.Interface
{
public interface IGetAllItemClass
{
DataTable item_class(string business_info_id, string rvc_id);
}
}
我的一流服務實現接口:
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;
}
}
}
我試圖使用依賴injection.May是我失去了一些東西。誰可以幫我這個事 ?我困在此。
你在使用棱鏡嗎? –
@RandyLevy先生我正在使用Unity.I完全是WPF的新手。 –
你確定它沒有錯?var home = new UnityContainer(); container.RegisterType(); Home_Page hm = home.Resolve ();'?我的意思是你創建'home'容器,然後嘗試使用另一個容器來解析'Home_Page'。 順便說一句,你很奇怪你在你的情況下使用兩個不同的容器 –