2017-02-28 1 views
0

Ich versuche, eine CodedUI XamlControl zu einem Typ von XamlComboBox zu werfen, aber die Besetzung wirft eine Ausnahme nicht auslösen können.Casting XamlComboBox zu einem geerbten Typ funktioniert nicht

Meine Klasse ist:

public class MyComboBox : XamlComboBox 

Der Fehler tritt auf, wenn ich versuche, eine List<XamlControl> in der folgenden Zeile iterieren:

var comboBox = (MyComboBox) element; 

Selbst wenn ich etwas seltsam wie diese versuchen:

var xamlComboBox = (XamlComboBox) element; 
var comboBox = (MyComboBox) xamlComboBox; 

der Fehler hapens noch bei cast MyComboBox

Jede Idee, warum geschieht das?

+1

was genau ist der Fehler? - für mich scheint es, dass Sie jede 'XamlControl' zu werfen versuchen, die kein' MyComboBox' ist, zu 'MyComboBox' –

+0

das Element ist wirklich ein MeineComboBox? Sind Sie sicher, dass Ihre Liste keine Elemente vom Typ XamlComboBox sondern von MyComboBox enthält? –

Antwort

1

Bevor Sie Iteration Filter alle Elemente, die nicht von MyComboBox Art sind:

List<XamlControl> controls = ... 
foreach (var comboBox in controls.Where(c => c is MyComboBox)) { 
    // Here the items are only of type MyComboBox 
}