Wie zu Deaktivieren, Combobox-Einträge?
Gibt es eine Möglichkeit zum deaktivieren Sie alle, aber die ersten x Elemente einer WPF ComboBox durch Zugriff auf seine Elemente' Eigenschaften über einen Index?
edit:
ComboBoxItem DiffieHellmanItem = (ComboBoxItem)comboboxName.ItemContainerGenerator.ContainerFromIndex(i));
funktioniert
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN:
Sieht aus wie Sie einen Weg gefunden, um auf die ComboBoxItems. Möglicherweise möchten Sie auch zu schauen, ItemContainerStyle und sehen, ob es einige DataBinding nutzen Sie (wenn Ihre Elemente haben eine Eigenschaft "Enabled" oder so ähnlich).
Jedoch, je nachdem, wie Sie Ihren DataBinding, können Sie in der Lage sein, um Ihre "Behinderten" Elemente in einen anderen Pinsel, Deckkraft, etc. durch die Verwendung von DataTemplates. Bea Stollnitz hat einen guten Beitrag über die hier.
Einer Sache, möchten Sie vielleicht zu prüfen, aus UX-Sicht ist, warum Sie möchten, um Sie deaktiviert, im Gegensatz zum verborgenen. Gibt es irgendeine Art von progressive disclosure Taktik, die Sie nutzen können, um nicht über eine ComboBox gefüllt mit Sachen, die kann der Benutzer nicht auf?
Können Sie eine ItemContainerStyle auf die Combobox. Von Blend - erstellen Sie eine Kopie der aktuellen erhalten diese Vorlage. In der Vorlage können Sie festlegen, IsEnabled-Eigenschaft als einen Setter, und binden Sie es Wert ist, auf das, was Sie wollen, zu binden.
Ich weiß nicht, der eine Weise tatsächlich zu deaktivieren Elemente in einer ComboBox, aber Sie sollten in der Lage sein, um Logik hinzufügen, um Ihr OnClick-Ereignis, das wird, überprüfen Sie, ob das ausgewählte Element ist index >= x und verbieten, was der Betrieb wurde aufgefordert, die Grundlage.
Imho der beste Ansatz ist die Verwendung DataTriggers