我试图在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
答案 0 :(得分:0)
我找到了答案。
出于沮丧,我试图完全复制我链接到的页面。
我需要添加
DataContext="{Binding RelativeSource={RelativeSource Self}}"
到窗口Xaml元素
但这还不够,你试图从DisplayMemberBinding
访问的所有元素都必须有一个{ get; set; }
(即使它是空的就像那样)之后将它添加到{{1}的所有属性中1}}类和添加
Mission
对于窗口代码,一切正常运行