Est-ce qu'un ListBox WPF peut être "en lecture seule"?
Nous avons un scénario où l'on veut afficher une liste d'articles et d'indiquer quel est le "courant" de l'élément (avec une petite flèche marqueur ou un changement de la couleur d'arrière-plan).
ItemsControl n'est pas bon pour nous, parce que nous avons besoin du contexte de "SelectedItem". Cependant, nous voulons déplacer la sélection programattically et de ne pas permettre à l'utilisateur de le changer.
Est-il une façon simple de faire une liste non-interactif? Nous pouvons fudge il délibérément à avaler de la souris et du clavier événements, mais je suis pas certains fondamentaux de la propriété (comme la mise en "IsEnabled" pour de faux, sans affecter son style visuel) qui nous donne ce que nous voulons?
Ou ... est-il un autre contrôle WPF qui est le meilleur des deux mondes - un ItemsControl avec une propriété SelectedItem?
source d'informationauteur Matt Hamilton
Vous devez vous connecter pour publier un commentaire.
Une option est de définir
ListBoxItem.IsEnabled
àfalse
:Cela garantit que les articles ne sont pas sélectionnables, mais ils ne peuvent pas rendre la façon dont vous le souhaitez. Pour résoudre ce problème, vous pouvez jouer avec les déclencheurs et/ou des modèles. Par exemple:
J'ai eu le même problème. Je l'ai résolu en laissant la IsEnabled la valeur true et que la manipulation de la PreviewMouseDown cas de la zone de liste. Dans le gestionnaire d'e.Manipulés pour vrai dans le cas où vous ne voulez pas qu'il soit édité.
Est votre ItemsControl/ListBox lié aux données?
Je pense simplement que vous pourriez faire le Pinceau d'arrière-plan de chaque élément lié à une propriété de la source de données, ou du transfert de la propriété par l'intermédiaire d'un convertisseur. Quelque chose comme:
Non-sélectionnable ListBoxItem (ou ListViewItem) les fonctionnalités à l'aide des propriétés attachées:
http://thrash505.wordpress.com/2011/01/04/non-selectable-listboxitem-or-listviewitem-using-attached-properties/