C# WPF视图不绑定,除非我在之前切换视图

C# WPF视图不绑定,除非我在之前切换视图,c#,wpf,mvvm,user-controls,datacontext,C#,Wpf,Mvvm,User Controls,Datacontext,我正在尝试开发一个WPF应用程序,它显示3个视图,我们可以使用侧菜单进行切换 第一个视图显示文章。我已经在另一个项目中尝试了这个视图,它运行得很好 我的问题: 问题是,当我在导航中使用它时(使用完全相同的代码),图像或标题将不会出现,除非我先单击另一个视图,然后单击“上一步” 以下是我当前的代码: 模型:(第条) 公共类文章:INotifyPropertyChanged { int-id; 字符串标题; 串链; 位图图像; 公共事件属性更改事件处理程序属性更改; 私有void NotifyPro

我正在尝试开发一个WPF应用程序,它显示3个视图,我们可以使用侧菜单进行切换

第一个视图显示文章。我已经在另一个项目中尝试了这个视图,它运行得很好

我的问题: 问题是,当我在导航中使用它时(使用完全相同的代码),图像或标题将不会出现,除非我先单击另一个视图,然后单击“上一步”

以下是我当前的代码: 模型:(第条)
公共类文章:INotifyPropertyChanged
{
int-id;
字符串标题;
串链;
位图图像;
公共事件属性更改事件处理程序属性更改;
私有void NotifyPropertyChanged([CallerMemberName]字符串propertyName=”“)
{
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(propertyName));
}
公共文章(int-id、字符串标题、字符串链接、位图图像)
{
Id=Id;
头衔=头衔;
链接=链接;
图像=图像;
}
公共整数Id
{
get=>id;
设置{if(value!=id){id=value;NotifyPropertyChanged();}}
}
公共字符串标题
{
get=>title;
设置{if(value!=title){title=value;NotifyPropertyChanged();}}
}
公共字符串链接
{
get=>link;
设置{if(value!=link){link=value;NotifyPropertyChanged();}}
}
公共位图图像
{
get=>image;
设置{if(value!=image){image=value;NotifyPropertyChanged();}}
}
}
视图模型:(ArticlesViewModel)
公共类ArticlesViewModel:INotifyPropertyChanged
{
第[]条条款;
公共事件属性更改事件处理程序属性更改;
私有void NotifyPropertyChanged([CallerMemberName]字符串propertyName=”“)
{
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(propertyName));
}
公共AccueilViewModel()
{
装入物品();
}
公共物品[]物品
{
get=>文章;
设置{if(value!=articles){articles=value;NotifyPropertyChanged();}}
}
私有异步void loadArticle()
{
var client=新的WordPressClient(App.WordpressLink);
尝试
{
var asychArticles=GetArticles(客户);
等待你的誓言;
var articles=asychArticles.Result;
int i=0;
INTA;
foreach(WordPressPCL.Models.Post p在文章中)
{
a=p.FeaturedMedia.Value;
var media=GetMedia(客户端,a);
等待媒体;
BitmapImage bimage=App.getImage(media.Result.SourceUrl);
articleImg[i]。来源=双图像;
articleTitle[i].Content=p.Title.Rendered.ToUpper();
articleLink[i]=p.Link;
i++;
如果(i==4)中断;
}
}
catch(System.Net.Http.HttpRequestException e)
{
}
}
静态异步任务GetArticles(WordPressClient客户端)
{
var posts=await client.posts.GetAll();
返回岗位;
}
静态异步任务GetMedia(WordPressClient客户端,整数)
{
var media=await client.media.GetByID(编号);
返回媒体;
}
}
视图:(ArticlesView)

MainWindow.xaml:

MainWindow.xaml.cs:
公共部分类主窗口:窗口
{
ArticlesViewModel avm;
功能2视图模型f2vm;
功能3视图模型f3vm;
公共主窗口()
{
初始化组件();
}
私有无效F1按钮\单击(对象发送者,路由目标e)
{
如果(avm==null)avm=new AccueilViewModel();
DataContext=avm;
}
私有无效F2按钮\u单击(对象发送者,路由目标e)
{
如果(f2vm==null)f2vm=new catalogeviewmodel();
DataContext=f2vm;
}
私有无效F3按钮\u单击(对象发送者,路由目标)
{
如果(f3vm==null)f3vm=new MesFormationsViewModel();
DataContext=f3vm;
}
}
总而言之:
  • 单击文章->不显示任何内容
  • 单击F2然后单击文章->不显示任何内容
  • 点击文章然后点击F2然后点击文章->正确显示图像和标题

有没有关于这个问题可能来自哪里的想法谢谢。

所以问题似乎来自我使用数组的事实。A.