我在Windows Phone 8 SDK
中使用了旋转控件时发现了一个问题。
数据透视图绑定到名为Students
的列表,并在单击时设置一个按钮,新建一个新学生对象并将其设置为Students[2]
作为新值。这导致了下面屏幕截图中显示的重叠问题。有没有其他人在WP8 SDK
?
这是代码
public MainPage()
{
InitializeComponent();
this.DataContext = this;
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
InitiList();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
int index = 2;
Students[index] = new Student();
Students[index].Name = "tian";
Students[index].College = "shida";
}
private ObservableCollection<Student> _students;
public ObservableCollection<Student> Students
{
get { return _students; }
set
{
_students = value;
RaisePropertyChanged("Students");
}
}
private void InitiList()
{
Students = new ObservableCollection<Student>();
Students.Add(new Student { Name="a",College="aa"});
Students.Add(new Student { Name = "b", College = "aa" });
Students.Add(new Student { Name = "c", College = "aa" });
Students.Add(new Student { Name = "d", College = "aa" });
Students.Add(new Student { Name = "e", College = "aa" });
}
Ckeck this o / p image:
答案 0 :(得分:0)
你正在修改学生,但是RaisePropertyChanged没有被解雇,因为访问学生不会触发调用RaisePropertyChanged的Set。这可能是问题,我现在无法测试它。
答案 1 :(得分:0)
我遇到了同样的问题,我通过在构造函数中将项添加到ObservableCollection而不是使用Add方法来修复它。它似乎是ObservableCollection类的错误。尝试将代码更改为:
private void InitiList()
{
Students = new ObservableCollection<Student>(new [] {
new Student { Name="a",College="aa"}),
new Student { Name = "b", College = "aa" }),
new Student { Name = "c", College = "aa" }),
new Student { Name = "d", College = "aa" }),
new Student { Name = "e", College = "aa" })
});
}