我不明白为什么但我无法在列表视图上显示数据。
我该怎么办?
这是我的代码:
<FlipView HorizontalAlignment="Left" Margin="209,52,0,0"
VerticalAlignment="Top" Width="892" Height="432" Grid.Row="1">
<ListView HorizontalAlignment="Left" Height="426"
VerticalAlignment="Top" Width="453"
Margin="433,0,0,0" DataContext="TwitterDataViewModel"
ItemsSource="{Binding ListeTweet}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="132">
<Image Source="{Binding ImageUrl}" Height="73"
Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
<StackPanel Width="370">
<TextBlock Text="{Binding Name}" Foreground="#FFC8AB14"
FontSize="28" />
<TextBlock Text="{Binding Text}" TextWrapping="Wrap"
FontSize="24" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</FlipView>
怎么回事?
我照看了我的TwitterDataViewModel,它是一个INotifyPropertyChanged类......
namespace App1
{
public class TwitterDataViewModel : INotifyPropertyChanged
{
private User _user;
public User User
{
get { return _user; }
set
{
_user = value;
RaisePropertyChanged("User");
}
}
private List<Tweet> _listeTweet;
public List<Tweet> ListeTweet
{
get { return _listeTweet; }
set
{
_listeTweet = value;
RaisePropertyChanged("ListeTweet");
}
}
private List<User> _listeUser;
public List<User> ListeUser
{
get { return _listeUser; }
set
{
_listeUser = value;
RaisePropertyChanged("ListeUser");
}
}
private List<NameValueItem> _listeDonneesGraphiques;
public List<NameValueItem> ListeDonneesGraphiques
{
get { return _listeDonneesGraphiques; }
set
{
_listeDonneesGraphiques = value;
RaisePropertyChanged("ListeDonneesGraphiques");
}
}
public TweetViewModel tweetviewmodel { get; set; }
public UserViewModel userviewmodel { get; set; }
public TwitterCommand<object> ClickSearch { get; set; }
readonly Page page;
public TwitterDataViewModel(Page page)
{
tweetviewmodel = new TweetViewModel(page);
userviewmodel = new UserViewModel(page);
this.page = page;
ClickSearch = new TwitterCommand<object>(AfficheDonnee); //bouton NEXT
}
void AfficheDonnee(object obj) //Méthode qui sera exécutée lors du click sur le bouton NEXT
{
//Consiste à afficher les données précédemment récupérées.
ListeTweet = tweetviewmodel.RecupererTweets(); //ok ca fonctionne
//tweetviewmodel.TrouverMot();
//tweetviewmodel.TrouverTweetSpecific();
//Task.Run(async () =>
//{
// //je fais une tâche et j'attend 15 minutes
// userviewmodel.GetScreenName();
// await Task.Delay(15 * 600);//15 minutes
//});
//Task.Run( () =>
//{
// userviewmodel.GetScreenName();
//});
//User = userviewmodel.RecupererInfoUser();
// ListeUser = userviewmodel.GetScreenName();
//ListeDonneesGraphiques = new List<NameValueItem>(); //Liste des données numérique qui va servir pour le graphique de données
//tweetviewmodel.TrouverMot(); //Problème à l'affichage
//ListeDonneesGraphiques.Add((new NameValueItem() { Name = "Tweets", Value = userviewmodel.Users.NbStatus }));
//ListeDonneesGraphiques.Add((new NameValueItem() { Name = "Following", Value = userviewmodel.Users.NbFollowing }));
//ListeDonneesGraphiques.Add((new NameValueItem() { Name = "Followers", Value = userviewmodel.Users.NbFollowers }));
//ListeDonneesGraphiques.Add((new NameValueItem() { Name = "Favorite", Value = userviewmodel.Users.NbFavorite }));
//ListeDonneesGraphiques.Add((new NameValueItem() { Name = "Listed", Value = userviewmodel.Users.NbListe }));
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string prop)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(prop));
}
}
}
}
答案 0 :(得分:0)
答案 1 :(得分:0)
当您将项目添加到List<>
时,它不会更改 - 其内容会更改,但不会更改List
本身。
将项添加到列表时,不会调用ListeTweet
的setter。然而,你的吸气器是!
要解决您的问题,您可以将列表ListeTweet
更改为ObservableCollection<Tweet>
,这会在您向其添加项目时引发OnCollectionChanged
事件。