0

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);

私はそれを間違っていますか?私の目標を達成する別の方法はありますか?またはバグですか?

よろしく、セルジオ

4

0 に答える 0