Czy to tylko ja, czy WPF jest bałaganem wiązania danych i niestandardowych konwerterów IValue?

Poważnie, wygląda na to, że za każdym razem, gdy chcę, aby moje elementy interfejsu użytkownika rozmawiały ze sobą, kończę kodowanie nowego, niestandardowego IValueConverter :(. Ktoś mi powiedział, że robię to źle, proszę!

Przykłady:

Chciałem, aby przycisk był włączony tylko wtedy, gdy moje pole tekstowe zawierało poprawny identyfikator URI. Świetnie, czas na kodowanieUriIsValidConverter!Oh oops, chciałem również wyłączyć to, gdy coś przetwarzam. Chyba teraz muszę zakodować aUriIsValidAndBoolIsFalseMultiConverter!Chcę wyświetlić listę plików w określonym katalogu (określonym przez pole tekstowe) w polu listy. Chyba potrzebujęDirectoryPathToFileList przetwornik!Och, hej, chcę ikony dla każdego z tych plików w widoku listy. Czas naFileInfoToBitmap przetwornik!Chcę, aby mój status był czerwony, jeśli mój ciąg statusu zawiera „Błąd”, a zielony w przeciwnym razie. Tak, mam kodStatusStringToSolidColorBrushConverter!

Naprawdę myślę, że to nie jest o wiele lepsze niż stara metoda Windows Forms polegająca na podłączaniu wszystkiego ręcznieTextChanged wydarzenia (lub cokolwiek). Które chyba wciąż jest opcją. Czy tak właśnie robią ludzie i zbyt mocno staram się, aby wszystko pasowało do paradygmatu powiązania danych?

Więc tak, powiedz mi, czy tak naprawdę jest kodowanie WPF --- czy robię to źle, a jeśli tak, to co japowinien robić.

questionAnswers(3)

yourAnswerToTheQuestion