2012-11-12 15 views
1

我想创建一个简单的WPF列列表视图,但我打了一堵砖墙。WPF的列表视图不会改变ItemSource

我的XAML中:

<ListView x:Name="asas" Height="220" Margin="10,90,10,0" VerticalAlignment="Top" ItemsSource="{Binding Path=missionCollection}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="140" Header="Name" DisplayMemberBinding="{Binding Path=name}"/> 
      <GridViewColumn Width="140" Header="Folder" DisplayMemberBinding="{Binding Path=id}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

和C#代码:

public readonly ICollection<Mission> missionCollection = new ObservableCollection<Mission>(); 
foreach (var campaign in campaigns) 
{ 
    if(campaign.id != "c1") 
     continue; 
    foreach(Mission mission in campaign.missionList) 
     missionCollection.Add(mission); 
} 

此C#代码是在同一个窗口。

我的问题是,列表视图似乎是确定当我添加一些绑定不更新。

我已经读了很多关于这个的其他问题,但没有我已经找到了解决方案,似乎在帮助我。

我下面这个页面:http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-1

+0

如果您用数据初始化集合,它会显示吗? – benPearce

+0

@benPearce北距 –

回答

0

我找到了答案。

出于无奈我试图复制正是我链接的页面一样。

我需要添加

DataContext="{Binding RelativeSource={RelativeSource Self}}" 

要将窗口的XAML元素

但是这还不够,你尝试从DisplayMemberBinding访问所有元素必须有一个{ get; set; }(即使它是空的只是这样的)将在此之后给Mission类的所有属性和添加

private ObservableCollection<Mission> _missionCollection = new ObservableCollection<Mission>(); 
public ObservableCollection<Mission> MissionList 
    { 
     get { return _missionCollection; } 
    } 

要将窗口鳕鱼e,一切正常顺利

+0

它必须有一个get是一个公共属性可以只能绑定到我刚才读了它的公共属性 – Paparazzi

+0

,我终于明白为什么人们写信空白评审,至少我学到了一些东西,从这个问题,谢谢。 –

+0

我将DataContext设置为Window构造函数中的viewmodel - DataContext = vm; – NoPyGod