我试图将数据绑定到ListView
控件:
<ListView Margin="8" Height="400" Width="650"
ItemsSource="{Binding Path=MyData}">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="Auto"
DisplayMemberBinding="Binding Path=ID}" >
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Name}"
Header="Name" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Price}"
Header="Price" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Author}"
Header="Author" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Catalog}"
Header="Catalog" Width="100"/>
</GridView>
</ListView.View>
</ListView>
ObservableCollection<TableInfo> _MyData
public ObservableCollection<TableInfo> MyData{ get; set; }
但是,它不会在窗口中显示任何内容,但MyData
是ObservableCollection
。如何绑定数据?
答案 0 :(得分:4)
丹娘,
如果您正确设置了视图模型,并且确定MyData集合不为null或为空,请尝试从xaml中删除“Path”关键字:
<ListView Margin="8" Height="400" Width="650"
ItemsSource="{Binding Path=MyData}">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="Auto"
DisplayMemberBinding="{Binding ID}" >
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Name}"
Header="Name" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Price}"
Header="Price" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Author}"
Header="Author" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Catalog}"
Header="Catalog" Width="100"/>
</GridView>
</ListView.View>
</ListView>
如果这没有帮助,请检查调试输出并发布它,我们肯定会想出办法。
答案 1 :(得分:2)
你的XAML
看起来很好。
确保正确设置DataContext
。
yourView.DataContext = YouViewModel;
答案 2 :(得分:0)
首次评估Binding时,它可能(取决于您的代码)找到null。如果您以后将其设置为合理的话,则不会收到通知。
尝试确保在类costructor中创建ObservableCollection,而不是在其他地方覆盖它。您可以替代地实现INotifyPropertyChanged并在te My set setter上引发PropertyChanged事件。