の項目/インデックスを選択し、私はSystem.Windows.Controls.ListBoxは、プログラムのListBox WPFで
の選択インデックスを設定したいのですが、私がこれまでに見つけた私の最善の方法は、すべて削除することですコントロールから項目を選択し、SelectAll()をコールし、残りの部分を挿入しますが、この解決策は私の状況では機能しませんし、非常に効率的です。
リストボックスの項目をプログラムで選択するにはどうすればよいですか?
の項目/インデックスを選択し、私はSystem.Windows.Controls.ListBoxは、プログラムのListBox WPFで
の選択インデックスを設定したいのですが、私がこれまでに見つけた私の最善の方法は、すべて削除することですコントロールから項目を選択し、SelectAll()をコールし、残りの部分を挿入しますが、この解決策は私の状況では機能しませんし、非常に効率的です。
リストボックスの項目をプログラムで選択するにはどうすればよいですか?
これを行う方法の1つは、選択したフィールドをデータオブジェクトに追加することです。次に、デフォルトのlistboxitemスタイルを上書きし、isselectedプロパティをオブジェクトのSelectedプロパティにバインドする必要があります。それから、データ項目を調べ、Selected値を更新するだけです。
Selectedプロパティを依存プロパティとして実装していない場合は、INotifyPropertyChangedインターフェイスを暗示し、値を設定するときにpropertychangedイベントを発生させるクラスが必要です。
あなたはこれをしなければならない:itemIndexは、選択したい項目だろう
ListBoxObject.SelectedItem = ListBoxObject.Items.GetItemAt(itemIndex);
。 複数の項目を選択する場合は、ListBox.SelectedIndexCollectionプロパティを使用する必要があります。
SelectedItemsコレクションを使用して複数のアイテムを選択して設定できます。これは、インデックスではありませんが、バインドされているものによって:
foreach (var boundObject in objectsBoundToListBox)
{
ListBox.SelectedItems.Add(boundObject);
}
これは、アイテムが追加されるたびにSelectionChangedイベントを1回発生させます。シフトを使ってアイテムのグループを手動で選択すると、グループ全体に対して1回だけ呼び出されます。 – FreddyFlares
感謝をリストボックスで複数の項目を選択する方法。 私のケースはListBox
内のCheckBox
を実際にチェックしていましたが、この依存プロパティは魅力的に機能しました。 私はあなたが複数のセクションのためにこれを行うことができますDependencyObject
から私のカスタムクラスを継承しなければならなかったし、プロパティを実装
public class ProjectListItem : DependencyObject{
public Boolean IsChecked
{
get { return (Boolean)this.GetValue(CheckedProperty); }
set { this.SetValue(CheckedProperty, value); }
}
public static readonly DependencyProperty CheckedProperty =
DependencyProperty.Register("IsChecked", typeof(Boolean), typeof(ProjectListItem),
new PropertyMetadata(false));
}
:
私はアイテムのインデックスですListBoxObject.SelectedItems.Add(ListBoxObject.Items.GetItemAt(i));
。
これは完全に機能しました。ありがとうございます! – Alex
ありがとう!...これはうまくいきました。私は、以下で使用したコードセグメントを追加します。 –
実際にはこれは以下のdanlashと比較すると複雑すぎます。 – henon