1

我正在尝试在 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

4

1 回答 1

0

我找到了答案。

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

我需要添加

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

到窗口 Xaml 元素

但这还不够,您尝试从 a 访问的所有元素都DisplayMemberBinding必须有一个{ get; set; }(即使它是空的)在将其添加到Mission类的所有属性并添加之后

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

到窗口代码,一切正常

于 2012-11-12T23:03:03.320 回答