WPF列表视图不随ItemSsource更改

时间:2012-11-12 22:47:43

标签: c# .net wpf

我试图在WPF中创建一个简单的2列列表视图,但我碰到了一堵砖墙。

我有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

1 个答案:

答案 0 :(得分:0)

我找到了答案。

出于沮丧,我试图完全复制我链接到的页面。

我需要添加

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

到窗口Xaml元素

但这还不够,你试图从DisplayMemberBinding访问的所有元素都必须有一个{ get; set; }(即使它是空的就像那样)之后将它添加到{{1}的所有属性中1}}类和添加

Mission

对于窗口代码,一切正常运行