2

GridView を ObservableCollection にデータバインドすると、コレクションの最初の項目が自動的に選択されます。GridViewのSelectionModeプロパティは に設定されていますmultiple。この自動選択を防ぐ方法はありますか? SelectedIndexまたは、GridView を -1 にリセットできるように、どのイベントでリッスンする必要がありますか?

4

3 に答える 3

2

実際には非常に簡単な解決策があります。XAML でSelectionModeGridView のを設定します。None次に、ページが作成されたら、 を に変更SelectionModeMultipleます。

        publicPage()
        {
            this.InitializeComponent();
            itemListView.SelectionMode = ListViewSelectionMode.Multiple;
        }

ただし、私が抱えている問題は、自分のプログラムが原因のようです。これは私が抱えている問題の回避策です。自動選択はデフォルトの動作ではありません。

http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/da7e9f3b-9a3e-47ca-8223-b50539293f5f

于 2012-07-12T17:25:51.317 に答える
1

私の状況は逆です。にGridViewバインドされた がObservableCollectionあり、最初の項目を選択したかったのですが、選択されませんでした! なぜそうなったのかは、なんとなくわかったのですが。my を生成するには 2 つの方法がありObservableCollection、選択した方法に応じて、最初のアイテムが選択されるかどうかが決まります。

たとえば、ビューモデルに GridView にバインドする変数 ItemList があります。

public ObservableCollection<Item> ItemList { get; private set; }

方法 1 (何も選択されていない)

public void getData()
{
    var myList = // get your list here
    for (int i = 0; i < myList.Count; i++)
    {
        this.ItemList.add(myList[i]);
    }
}

方法 2 (1 番目の項目が自動的に選択される)

public void getData()
{
    var myList = // get your list here
    this.ItemList = myList
}
于 2012-08-24T03:38:36.233 に答える