簡體   English   中英

“ mscorlib.ni.dll中發生了'System.ArgumentException'類型的異常”

[英]“An exception of type 'System.ArgumentException' occurred in mscorlib.ni.dll”

我得到了要處理的代碼,作為一個初學者,我沒有完全理解該代碼(使用MVVM的Windows Phone 8 Silverlight項目)。 代碼有這個

 public Dictionary<CeFlix.Entities.Enums.Views, string> PageRouting = new Dictionary<CeFlix.Entities.Enums.Views, string>()
    {
         {CeFlix.Entities.Enums.Views.DashboardPage,"DashboardPage.xaml"},
         {CeFlix.Entities.Enums.Views.LargeBannerDetailPage,"/Views/LargeBannerDetailPage.xaml"},
         {CeFlix.Entities.Enums.Views.ChannelDataPage,"/Views/ChannelDataPage.xaml"},
         {CeFlix.Entities.Enums.Views.ChannelDetailPage,"/Views/ChannelDetailPage.xaml"},
         {CeFlix.Entities.Enums.Views.VideoDetailPage,"/Views/VideoDetailPage.xaml"},
         {CeFlix.Entities.Enums.Views.UserLoginPage,"/Views/UserLoginPage.xaml"},
         {CeFlix.Entities.Enums.Views.UserRegisterPage,"/Views/UserRegisterPage.xaml"},
         {CeFlix.Entities.Enums.Views.UploadVideoDetailPage,"/Views/UploadVideoDetailPage.xaml"},
         {CeFlix.Entities.Enums.Views.FeedBackDetailPage,"/Views/FeedBackDetailPage.xaml"},
        {CeFlix.Entities.Enums.Views.EditProfileDetailPage,"/Views/EditProfileDetailPage.xaml"},
         {CeFlix.Entities.Enums.Views.ChangePasswordPage,"/Views/ChangePasswordPage.xaml"},
         {CeFlix.Entities.Enums.Views.MyPlaylistDetailPage,"/Views/MyPlaylistDetailPage.xaml"},
          {CeFlix.Entities.Enums.Views.SubscriptionDetailPage,"/Views/SubscriptionDetailPage.xaml"},
            {CeFlix.Entities.Enums.Views.SelectedSearchItemVideoPage,"/Views/SelectedSearchItemVideoPage.xaml"},
            {CeFlix.Entities.Enums.Views.CategoryDetailPage,"/Views/CategoryDetailPage.xaml"},
            {CeFlix.Entities.Enums.Views.WatchLiveVideoPage,"/Views/WatchLiveVideoPage.xaml"},
            {CeFlix.Entities.Enums.Views.CommentsPage,"/Views/CommentsPage.xaml"},
            {CeFlix.Entities.Enums.Views.CommentsPage,"/Views/RepliesPage.xaml"}
    };

我在項目中又添加了兩個頁面,我以為可以將其添加到集合中,所以我在PageRouting中添加了兩行

,
            {CeFlix.Entities.Enums.Views.CommentsPage,"/Views/CommentsPage.xaml"},
            {CeFlix.Entities.Enums.Views.CommentsPage,"/Views/RepliesPage.xaml"}

枚舉也看起來像這樣,最后兩行代表我添加的兩個新頁面

 public enum Views
{
    DashboardPage = 1,
    LargeBannerDetailPage = 2,
    ChannelDetailPage = 3,
    VideoDetailPage = 4,
    ChannelDataPage = 5,
    UserLoginPage = 6,
    UserRegisterPage = 7,
    EditProfileDetailPage = 8,
    FeedBackDetailPage = 9,
    UploadVideoDetailPage =10,
    ChangePasswordPage =11,
    MyPlaylistDetailPage = 12,
    SubscriptionDetailPage =13,
    SelectedSearchItemVideoPage =14,
    CategoryDetailPage = 15,
    WatchLiveVideoPage=16,
    RepliesPage = 17,
    CommentsPage = 18
}

我以前從未見過這種編程模式。 當我啟動應用程序時,我拋出一個異常,說“ mscorlib.ni.dll中發生了'System.ArgumentException類型的異常'”,我該怎么辦? 誰能幫忙。 我認為也要發布此帖子很重要

public void NavigateToPage(CeFlix.Entities.Enums.Views navigateToView, object navigationParameter)
    {
        string path = PageRouting[navigateToView];

        RootFrame.Navigate(new Uri(path + "?Param=" + navigationParameter, UriKind.Relative));
    }

現在,當我刪除添加到PageRouting集合中的兩行新代碼時,它可以很好地編譯,但是我無法導航到我剛剛添加的那兩個新頁面。

字典需要唯一的鍵,並且您添加了兩個具有相同鍵的條目CommentsPage

您添加了RepliesPage枚舉值,這看起來像是一個錯字。 應該是這個嗎?

{CeFlix.Entities.Enums.Views.CommentsPage,"/Views/CommentsPage.xaml"},
{CeFlix.Entities.Enums.Views.RepliesPage,"/Views/RepliesPage.xaml"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM