WP7アプリでlonglistselectorを使用しています。このアプリでは、longlistselectorに、少し複雑なitemtemplateを使用して複数のアイテム(20を超える)を入力できます。その場合、ユーザーがリストにデータを入力するボタンをクリックすると、UIが3、4秒以上ハングし、リストにデータが入力されるのを待ちます。私のアイデアは、リストが作成されている間にリストを表示することでした。タイマーを作成し、ティックごとにリストに要素を追加します。視覚的にはアイデアは機能し、UIはハングしません...残念ながら、longlistselectorはすべてのアイテムを追加しますが、間違ったグループに追加します。いくつかのテストの後、スレッドではなく問題を再現します。コードは次のとおりです。
longlistselectorItemsSourceにバインドされているGroupクラスは次のとおりです。
public class TaskByProject : ObservableCollection<TaskInProjectGroup>
{
public TaskByProject(List<Task> tasks)
{
// here groups are created and list is populated
}
}
public class TaskInProjectGroup : ObservableCollection<Task>
{
public TaskInProjectGroup(string category)
{
Key = category;
}
public string Key { get; set; }
public bool HasItems { get { return Count > 0; } }
}
これは私がデータをロードするために使用するコードです:
TaskByProject tasksVisibili;
// create a taskyproject with the same groups of taskView
tasksVisibili = new TaskByProject(emptylist of tasks);
lbToday.ItemsSource = tasksVisibili;
次に、タスクにアイテムを追加するためのボタンを作成しますVisibili:
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
tasksVisibili[0].Add(task1);
tasksVisibili[1].Add(task2);
tasksVisibili[2].Add(task3);
}
ボタンをクリックすると、3つのタスクがすべて3番目のグループに追加されます。具体的には、次のコードを実行した場合と同じ結果になります。tasksVisibili [2] .Add(task1); tasksVisibili [2] .Add(task2); tasksVisibili [2] .Add(task3);
私はそれを間違っていますか?私の目標を達成する別の方法はありますか?またはバグですか?
よろしく、セルジオ