Ich habe hier ein Problem mit Binding.
Per DataBinding ist eine CheckBox (Checked-Property) an die IsOpen-Property der Singleton-Instanz der Klasse ConnectionManager gebunden.
Ich habe einen Haltepunkt im Set-Teil der Property gesetzt. Der Set-Teil wird aber unter ganz komischen Bedingungen aufgerufen. Das hängt vom Binding ab.
Ohne Binding wird der Set-Teil nicht aufgerufen. Das ist logisch und auch OK.
Bei diesem Binding wird der Set-Tei nicht aufgerufen, wenn ich auf der CheckBox herumklicke. Erst, wenn die CheckBox den Fokus verliert (ich z.B. auf die ListBox daneben klicke), dann wird der Set-Teil aufgerufen.
Ich bin dann einfachmal alle DataSourceUpdateModes durchgegangen:
Hier wird, wie erwartet, der Set-Teil nie aufgerufen (wofür ist dieser Modus eigentlich gut?).
Genau das gleiche Verhalten wie ohne eine Angabe von DataSoureUpdateMode.
Hier wird (so soll es sein) der Set-Teil sofort aufgerufen, sobald die CheckBox ge(un)checkt wird. Aber: Er wird auch aufgerufen, wenn die CheckBox den Fokus verliert. Was aber eigentlich nicht sein sollte.
Hab ich da was übersehen? Handhabe ich das Binding falsch?
Es wäre hier für die meisten Dinge nicht unbedingt notwendig, Binding zu verwenden, aber mir geht's hier ums Prinzip. Vielleicht finde ich hier auch noch andere Probleme, die sich eingeschlichen haben.
Per DataBinding ist eine CheckBox (Checked-Property) an die IsOpen-Property der Singleton-Instanz der Klasse ConnectionManager gebunden.
Ich habe einen Haltepunkt im Set-Teil der Property gesetzt. Der Set-Teil wird aber unter ganz komischen Bedingungen aufgerufen. Das hängt vom Binding ab.
Ohne Binding wird der Set-Teil nicht aufgerufen. Das ist logisch und auch OK.
CheckBox_Connection_Open.DataBindings.Add(New Binding("Checked", ConnectionManager.Instance, "IsOpen"))
Bei diesem Binding wird der Set-Tei nicht aufgerufen, wenn ich auf der CheckBox herumklicke. Erst, wenn die CheckBox den Fokus verliert (ich z.B. auf die ListBox daneben klicke), dann wird der Set-Teil aufgerufen.
Ich bin dann einfachmal alle DataSourceUpdateModes durchgegangen:
CheckBox_Connection_Open.DataBindings.Add(New Binding("Checked", ConnectionManager.Instance, "IsOpen", False, DataSourceUpdateMode.Never))
Hier wird, wie erwartet, der Set-Teil nie aufgerufen (wofür ist dieser Modus eigentlich gut?).
CheckBox_Connection_Open.DataBindings.Add(New Binding("Checked", ConnectionManager.Instance, "IsOpen", False, DataSourceUpdateMode.OnValidation))
Genau das gleiche Verhalten wie ohne eine Angabe von DataSoureUpdateMode.
CheckBox_Connection_Open.DataBindings.Add(New Binding("Checked", ConnectionManager.Instance, "IsOpen", False, DataSourceUpdateMode.OnPropertyChanged))
Hier wird (so soll es sein) der Set-Teil sofort aufgerufen, sobald die CheckBox ge(un)checkt wird. Aber: Er wird auch aufgerufen, wenn die CheckBox den Fokus verliert. Was aber eigentlich nicht sein sollte.
Hab ich da was übersehen? Handhabe ich das Binding falsch?
Es wäre hier für die meisten Dinge nicht unbedingt notwendig, Binding zu verwenden, aber mir geht's hier ums Prinzip. Vielleicht finde ich hier auch noch andere Probleme, die sich eingeschlichen haben.
"Luckily luh... luckily it wasn't poi-"
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils
-- Brady in Wonderland, 23. Februar 2015, 1:56
Desktop Pinner | ApplicationSettings | OnUtils
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Niko Ortner“ ()