在WP7中绑定数据后更新页面
本文关键字:更新 数据 WP7 绑定 | 更新日期: 2023-09-27 18:09:39
我们有从服务器获取数据的代码,数据被解压缩和解析,然后文件的名称以及与它们相关的图标应该显示在UI上,我们正在使用列表框并尝试将这2个元素绑定到列表框,数据被绑定,但我们无法在绑定后更新页面。'
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Icon, Mode=OneWay}" Grid.Column="0" HorizontalAlignment="Center" Grid.Row="1"/>
<TextBlock Padding="10" Text="{Binding Widget, Mode=OneWay}" FontSize="20" Grid.Row="2" Grid.RowSpan="2" TextWrapping="Wrap" Grid.ColumnSpan="2" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>`
确保:
- UIManager类被设置为XAML控件的数据上下文。
-
UIManager必须实现INotifyPropertyChanged,以便通知UI,您绑定到的集合已经更改(有一些项目添加到它在您的情况下)。
-
最重要的-使用输出窗口来定位所有XAML绑定问题。
类UIManager: inotifypropertychanged{
private ObservableCollection<ItemsList> _displayItem; public ObservableCollection<ItemsList> DisplayItem { get { return _displayItem; } set { if(value != _displayItem) { _displayItem=value; NotifyPropertyChanged("DisplayItem"); } } public UIManager() { DisplayItem = new ObservableCollection<ItemsList>(); DisplayCat(DataManager.getInstance().displayName, DataManager.getInstance().icons); } public void DisplayCat(string[] DisplayNames, BitmapImage[] Icon) { ObservableCollection<ItemsList> tmpColl = new ObservableCollection<ItemsList>(); for (int i = 0; i < DataManager.getInstance().count; i++) { tmpColl.Add(new ItemsList { Widget = DisplayNames[i], Icon = Icon[i] }); } DisplayItem = tmpColl; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } }
}