2011-07-14 20 views
1

タイトルが私が欲しいものを表現するかどうかわかりません。私は多くの要素を生成するWPFのListBoxを持っています。まだ生成中に要素をクリックすると、選択した項目をリストの下に移動しないようにして、もう表示されないようにするために、クリックした正確な位置にとどまりたいと思います。リストボックスの項目は選択後に集中しています

可能であれば、誰かがC#でそれを行う方法に関するいくつかのアイデアを指摘できますか?

ありがとうございました。ソースで選択された項目のインデックスを決定し

:これも良いアイデアであり、あなたがリサイズに

ステップ1を使用していることと仮定すると

+0

UI、Winforms、WPF、ASP .NETとは何ですか? – msarchet

+0

ああ、私は言うことを忘れていた:WPF – Kobe

答えて

2

ステップ2:

確認しながらListBoxにあなたの追加アイテムは、アイテムが以前、アイテムの残りの部分に追加し、その時点で項目を挿入したインデックスでListBoxを分割するときにそのアイテムがリストの他の場所にあればアイテムを削除しました。

コード:

//のは、あなたがそれをクリックしたときにアイテムの位置を取得する方法を知っていると仮定してOriginalItem

public void PutTheItemInTheSameSpot() 
{ 
    var listboxitems = (List<Integer>)YourListBox.DataSource; 

    var originalClikedItem = OriginalItem; 
    var topPart = new List<Integer>(); 

    for (i = 0; i < itemPosition; i++) 
    { 
     topPart.Add(listboxItems[i]); 
    } 
    topPart.Add(originalClickedItem); 

    var bottomPart = listboxitems.Remove(toppart); 

    YourListBox.DataSource = toppart.AddRange(bottomPart); 


} 

という変数に //アイテムを保存してみましょう

WPFであることについてあなたの編集を見た

アイデアで動作する可能性があります。

+0

はい、アイデアのおかげで、なぜ私はこれが欲しいのですか?そのアイテムを右クリックすることができますが、アイテムを選択すると消滅します。それは一種の迷惑です – Kobe

2

考えてみましょう:アイテムがListBoxに追加されるたびに、あなたのビューがイベントに応答するようにすることができます。それは、または所望の作用を生成しない場合があり、私は前にこれを試したことがありません

listBox.ScrollIntoView(listBox.SelectedItem); 

:イベントハンドラでは、あなたはおそらく、現在の「見え」の位置にそれを維持するビューにスクロールするには、選択した項目を強制することができ?

関連する問題