Laden...

Binding schlägt fehl - Error 4

Erstellt von Fabian E. vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.344 Views
F
Fabian E. Themenstarter:in
258 Beiträge seit 2008
vor 13 Jahren
Binding schlägt fehl - Error 4

Hallo,
habe gerade ein seltsames Problem: Mein stinknormales Control Binding will einfach nicht klappen.
Und zwar möchte ich das SelectedItem einer ComboBox auf den CommandParameter eines Buttons binden.
Das klappt leider nicht, es kommt der Fehler 4.
Da meine Combox per ItemsSource befüllt wird, scheint der Fehler ja erst mal in WPF selbst zu liegen (bekanntes Problem),
die ganzen Schilderungen im Internet haben aber kein Problem damit, dass das Binding dann überhaupt nicht kalppt.

Hier der Code:


<StackPanel DockPanel.Dock="Top"
                            Orientation="Horizontal">
                    <StackPanel.Resources>
                        <ObjectDataProvider x:Key="PortNames"
                                            ObjectType="{x:Type Ports:SerialPort}"
                                            MethodName="GetPortNames" />
                    </StackPanel.Resources>
                    <ComboBox x:Name="cbxPortName"
                              Margin="2"
                              DockPanel.Dock="Top"
                              ItemsSource="{Binding Source={StaticResource PortNames}}"
                              Text="Port Auswahl"
                              SelectedIndex="0" />

                    <Button Margin="2"
                            DockPanel.Dock="Top"
                            Content="Verbinden"
                            CommandParameter="{Binding ElementName=cbxPortName,Path=SelectedIndex,Mode=OneWay}"
                            Command="{Binding Source={x:Static CommandBridge:GUICommands.Firmware}, Path=InitializeFlashLibrary}" />
                </StackPanel>

Ist es wirklich schon so spät, dass ich irgendwas dummes übersehe? Als Parameter kommt immer "null" an...

U
1.578 Beiträge seit 2009
vor 13 Jahren

Wie lautet die Fehlermeldung genau? Error Code 4 "Ein Binding Fehler" reicht nicht als info.

F
Fabian E. Themenstarter:in
258 Beiträge seit 2008
vor 13 Jahren

Sorry, ich meine natürlich diesen hier:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'ElementName=cbxPortName'. BindingExpression:Path=SelectedIndex; DataItem=null; target element is 'Button' (Name=''); target property is 'CommandParameter' (type 'Object')

EDIT: Fehlermeldung korrigiert.

U
1.578 Beiträge seit 2009
vor 13 Jahren

Die Fehlermeldung passt nicht zu deinem gezeigten Code.

Oben im Code bindest du gegen "SelectedIndex" aber die Fehlermeldung sucht nach "SelectedItem"

CommandParameter="{Binding ElementName=cbxPortName,Path=SelectedIndex,Mode=OneWay}"
vs
BindingExpression:Path=SelectedItem;

F
Fabian E. Themenstarter:in
258 Beiträge seit 2008
vor 13 Jahren

Hast du vollkommen Recht, ändere den Fehlertext und du hast wieder das was bei mir steht, stammt aus zwei verschiedenen Versionen, ich habe etwas rumprobiert woran es liegen könnte.
Egal welche Property ich nehme, der Fehler bleibt der gleiche. (auf die akteulle Property bezogen)

Das scheint wohl auch ein bekanntes Problem in WPF zu sein, dieser Data Error 4.
Allerdings hatte das sonst eben keine Auswirkungen auf die Funktion und man solle den Fehler einfach ignorieren...
Hat wohl was mit ItemControls und ItemsSource zu tun oder so, ich suche noch mal den Link.

EDIT: Gefunden: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/564e7160-df70-4e95-945d-60954dd7a2ae

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8028a46b-3080-40ad-aed2-e9417eb25381